2017-03-06 45 views
0

我在试图更新公司信息。当我得到编辑表单时已经保存了以前的输入,并在编辑输入后点击更新按钮,它不显示任何消息并且不更新任何信息。我如何使用laravel 5.3更新公司信息。

这里是edit.blade.php:

<form class="form-horizontal company-form" action="/company/edit" method="post"> 

    <input type="hidden" name="contact_id" value="{{$company->id}}"> 

    <div class="form-group"> 
     <label class="col-sm-3 control-label">Company Name</label> 
     <div class="col-sm-9"> 
      <input type="text" class="form-control" name="name" value="{{$company->company_name}}"> 
     </div> 
    </div> 

    <div class="form-group"> 
     <label class="col-sm-3 control-label">Email</label> 
     <div class="col-sm-9"> 
      <input type="email" class="form-control" name="email" value="{{$company->email}}"> 
     </div> 
    </div> 

    <div class="form-group"> 
     <label class="col-sm-3 control-label">Contact</label> 
     <div class="col-sm-9"> 
      <input type="number" class="form-control" name="contact" value="{{$company->contact}}"> 
     </div> 
    </div> 

    <div class="form-group"> 
     <label class="col-sm-3 control-label">Address</label> 
     <div class="col-sm-9"> 
      <textarea class="form-control" name="address" rows="5">{{$company->address}}</textarea> 
     </div> 
    </div> 

    @if(Session::has('message')) 
     <div class="form-group"> 
      <label class="col-sm-3 control-label"></label> 
      <div class="col-sm-9"> 
       <div class="alert alert-info" role="alert">{{Session::get('message')}}</div> 
      </div> 
     </div> 
    @endif 

    <div class="form-group"> 
     <label class="col-sm-3 control-label"></label> 
     <div class="col-sm-9"> 
      <button type="submit" value="Save" class="btn btn-default">Update</button> 
     </div> 
    </div> 
    {{ csrf_field() }} 
</form> 

这里是控制器:

public function updateInfo(Request $request){ 
     $company = Company::where('id','=',$request->id); 

     $data = [ 
      'company_name' => $request->name, 
      'email' => $request->email, 
      'contact' => $request->contact, 
      'address' => $request->address 
     ]; 

     if($company->update($data)){ 
      $request->session()->flash('message','Successfully Update Company!!'); 
       return redirect('/company/edit'.'/'.$request->id); 
     }else{ 
      $request->session()->flash('message','Not Update Company!!'); 
      return redirect('/company/edit'.'/'.$request->id); 
     } 
    } 

这里是路线:

Route::get('/company/edit/{id}','[email protected]'); 
    Route::post('/company/edit/{id}','[email protected]'); 

回答

0

你更新路由需要一个id参数,但您的表单只是发布到/company/edit/,所以它不会与您的任何路线相匹配。

更改表单上的动作以包含标识。

action="/company/edit/{{ $company->id }}" 
+0

其工作表示感谢。 – Haider