2016-02-27 31 views
0

我想通過Laravel 5.0保存表單輸入 頁面重新載入並返回到索引頁..但數據不通過路由保存到mysql。Laravel 5:數據不通過刀片形式保存

這裏是控制器:

<?php namespace App\Http\Controllers; 

use App\Http\Requests; 
use Illuminate\Pagination\LengthAwarePaginator; 
use App\Http\Requests\CreateTaskRequest; 
use App\Http\Controllers\Controller; 
use Illuminate\Http\Request; 
use App\Task; 
use Input; 

class TodoController extends Controller { 

    public function index() 
    { 
    $data=Task::all(); 
// $options=Option::whereNotIn('id',$activeCourse)->lists('option_name','id'); 
     return view('home')->with('data',$data); 

    } 

    /** 
    * Show the form for creating a new resource. 
    * 
    * @return Response 
    */ 
    public function create() 
    { 
     //return view('home'); 
    } 

    /** 
    * Store a newly created resource in storage. 
    * 
    * @return Response 
    */ 
    public function store(CreateTaskRequest $request) 
    { 
     // dd($request->all()); 

     /*$data=[ 
       'name'=>Input::get('name'), 
       'status'=>Input::get('status'), 
       'description'=>Input::get('description'), 
       'task_img'=>Input::get('task_img'), 
       'dob'=>Input::get('dob') 
      ];*/ 

       $response=new Task(); 
       $response->name=$request->input('name'); 
       $response->status=$request->input('status'); 
       $response->description=$request->input('description'); 
       $response->description=$request->input('task_img'); 
       $response->description=$request->input('dob'); 

      $response->save(); 
      // dd('working?'); 

      //$response=Task::create(['name'=>$request->input('name'),'status'=>$request->input('status'),'description'=>$request->input('description')]); 
      if($response){ 
       return redirect()->back()->with('success','Task Created Successfully'); 
      } 
    } 

    /** 
    * Display the specified resource. 
    * 
    * @param int $id 
    * @return Response 
    */ 
    public function show($id) 
    { 
     // 
    } 

    /** 
    * Show the form for editing the specified resource. 
    * 
    * @param int $id 
    * @return Response 
    */ 
    public function edit($id) 
    { 
     $data=Task::find($id); 
     return view('todo_edit')->with('data',$data); 
    } 

    /** 
    * Update the specified resource in storage. 
    * 
    * @param int $id 
    * @return Response 
    */ 
    public function update(CreateTaskRequest $request, $id) 
    { 
     $data=[ 
       'name'=>Input::get('name'), 
       'status'=>Input::get('status') 
      ]; 

      $response=Task::find($id)->update($data); 
      if($response){ 
       return redirect('/'); 
      } 

    } 


    public function destroy($id) 
    { 
      $response=Task::find($id)->delete(); 
      if($response){ 
       return redirect('/')->with('success','Task Deleted Successfully');; 
      } 
    } 
} 

這裏是我的視圖頁:

@extends('app') 

@section('content') 
<div class="container"> 
    <div class="row"> 
     <div class="col-md-12 "> 
     <div class="col-lg-12"> 
      <div class="col-lg-6"> 
       {!! Form::open(array('route' =>'' ,'method'=>'post')) !!} 
       {!! Form::hidden('_token',csrf_token()) !!} 
       <div class="form-group"> 
        <input type="text" name="name" class="form-control" placeholder="Enter a task name"></br> 
        </br> 
         <lavel> <input name="status" type="radio" value="Complete"> Complete</lavel></br> 
        <label> <input checked="checked" name="status" type="radio" value="Incomplete"> Incomplete</label></br> 
        <textarea class="form-control" name="description" rows="3"></textarea></br> 
        <label>File input</label> 
          <input type="file" name="task_img"></br> 
        <input type="date" class="form-control datepicker" name="dob" style="width:95%">   
        {!! Form::submit('Save', array('class' => 'btn btn-primary')) !!} 
       </div> 
      {!! Form::close() !!} 
     </div> 
    </div> 
      <h3> Todo Application </h3> 
      <table class="table table-striped table-bordered" id="example"> 
       <thead> 
        <tr> 
        <td>Serial No</td> 
        <td>Task Name</td> 
        <td>Status</td> 
        <td>Action</td> 
       </tr> 
       </thead> 
       <tbody> 
        <?php $i=1; ?> 
       @foreach($data as $row) 

        <tr> 
         <td>{{$i}}</td> 
         <td>{{$row->name }}</td> 
         <td>{{$row->status}}</td> 
         <td> 
          <a href="{{route('getEditRoute',$row->id)}}" class="btn btn-warning">Edit</a> 
          <form action="{{route('postDeleteRoute',$row->id)}}" method="POST" style="display:inline;" 
          onsubmit="if(confirm('Are you sure?')) {return true} else {return false};"> 
          <input type="hidden" name="_token" value="{{ csrf_token() }}"> 
          <input type="submit" class="btn btn-danger" value="Delete"> 
          </form> 

         </td> 
        </tr> 
       <?php $i++; ?> 

       @endforeach 
       </tbody> 


      </table> 

     </div> 
    </div> 
</div> 

@section('page-script') 
<script src="//code.jquery.com/jquery-1.10.2.js"></script> 
<script src="//code.jquery.com/ui/1.11.2/jquery-ui.js"></script> 
<script> 
$(document).ready(function() { 
    $('#example').DataTable(); 
}); 
</script> 
@stop 




@endsection 

這裏是路線:

<?php 

/* 
|-------------------------------------------------------------------------- 
| Application Routes 
|-------------------------------------------------------------------------- 
| 
| Here is where you can register all of the routes for an application. 
| It's a breeze. Simply tell Laravel the URIs it should respond to 
| and give it the controller to call when that URI is requested. 
| 
*/ 



Route::get('/', 
'[email protected]'); 
Route::post('/', '[email protected]'); 

Route::get('/{id}/edit',['as'=>'getEditRoute','uses'=>'[email protected]']); 
Route::post('/{id}/edit',['as'=>'postUpdateRoute','uses'=>'[email protected]']); 
Route::post('/{id}/delete',['as'=>'postDeleteRoute','uses'=>'[email protected]']); 

//Route::get('home', '[email protected]'); 

Route::controllers([ 
    'auth' => 'Auth\AuthController', 
    'password' => 'Auth\PasswordController', 
]); 
+0

爲什麼路線在你的窗體中是空的?保留在表單中保存數據的路徑。 – Drudge

+0

此外,您正在從您的路線調用存儲功能,但您已在您的控制器中創建了方法。 – Drudge

+0

你可以建議我解決方案,因爲我沒有良好的路線概念.. – Hola

回答

2

要從你可以做一個表單保存數據如下:

在您更換形成

{!! Form::open(array('route' =>'' ,'method'=>'post')) !!} 

{!! Form::open(array('route' =>'form.store' ,'method'=>'post')) !!} 

在你的路線替換

Route::post('/', '[email protected]'); 

Route::post('/store',array('as'=>'form.store',uses=>'[email protected]'); 

而在你的控制器更換

public function create() 
    { 
     //return view('home'); 
    } 

public function store(Request $request) //Http request object 
      { 
       Task::create($this->request->all());//assumes that you want to create task. 
    return \Redirect::route('/')->with('message', 'Task saved sucessfully!!!'); 

      } 

如果你想探索更多,那麼請從下面的鏈接閱讀文檔:

Laravel Routes

Laravel Request

Laravel Controllers

希望它有幫助。快樂編碼:)。

+0

謝謝! 認真! – Hola

+0

@ javed71如果它對你有幫助,那麼請接受並提出答案,以便對其他人也有用。 – Drudge