2017-08-16 73 views
-1

查看:Laravel 5.4未检测到提交按钮,并给出MassAssignmentException _token错误

@extends('admin.layout.admin') 
@section('content') 
<div class="navbar"> 
    <a class="navbar-brand" href="#">Categories=></a> 
    <ul class="nav navbar-nav"> 
    @if(!empty($categories)) 
     @forelse($categories as $category) 
    <li> 
     <a href="{{route('category.show',$category->id)}}">{{$category->name}}</a> 
    </li> 
     @empty 
    <li>No Data</li> 
     @endforelse 
    @endif 
    </ul> 
    <a class="btn btn-primary" data-toggle="modal" href="#modal-id">Add Category</a> 
    <div class="modal fade" id="modal-id"> 
     <div class="modal-dialog"> 
      {!! Form::open(['route' => 'category.store', 'method' => 'post']) !!} 
      <div class="modal-content"> 
       <div class="modal-header"> 
        <button type="button" class="close" data-dismiss="modal" aria-hidden="true">&times;</button> 
        <h4 class="modal-title">Add Category</h4> 
       </div> 
       <div class="modal-body"> 
        <div class="form-group"> 
         {{Form::label('name','Name') }} 
         {{Form::text('name',null,array('class' => 'form-control')) }} 
        </div> 
       </div> 
       <div class="modal-footer"> 
        <button type="submit" class="f btn btn-primary" >Save changes</button> 
        <button type="button" class="f data-dismiss="modal">Close</button> 
        <div class="clr"></div> 
       </div> 
      </div> 
      {!! Form::close() !!} 
     </div> 
    </div> 
</div> 
@endsection 

控制器:

<?php 
namespace App\Http\Controllers; 

use App\Category; 
use Illuminate\Http\Request; 

class CategoriesController extends Controller 
{ 
    /** 
    * Display a listing of the resource. 
    * 
    * @return \Illuminate\Http\Response 
    */ 
    public function index() 
    { 
     $categories=Category::all(); 
     return view('admin.category.index',compact('categories')); 
     } 

    /** 
    * Show the form for creating a new resource. 
    * 
    * @return \Illuminate\Http\Response 
    */ 
    public function create() 
    { 
     // 
    } 

    /** 
    * Store a newly created resource in storage. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @return \Illuminate\Http\Response 
    */ 
    public function store(Request $request) 
    { 
     Category::create($request->all()); 
     return back(); 
    } 

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

    /** 
    * Show the form for editing the specified resource. 
    * 
    * @param int $id 
    * @return \Illuminate\Http\Response 
    */ 
    public function edit($id) 
    { 
     // 
    } 

    /** 
    * Update the specified resource in storage. 
    * 
    * @param \Illuminate\Http\Request $request 
    * @param int $id 
    * @return \Illuminate\Http\Response 
    */ 
    public function update(Request $request, $id) 
    { 
     // 
    } 

    /** 
    * Remove the specified resource from storage. 
    * 
    * @param int $id 
    * @return \Illuminate\Http\Response 
    */ 
    public function destroy($id) 
    { 
     // 
    } 
} 

“提交”按钮,在出现的灰色,而不是绿色的我使用Php Storm。任何可以帮助我什么是问题。在此先感谢

回答

0

添加

{{ csrf_field() }} 

当你使用一个正常的形式不是集合HTML。在模型中,你必须通过你输入的名称fileden

// pass all the name in your form in your case just name 
protected $fillable = ['name']; 

,或者您可以使用

protected $guarded // here you pass what is not going to add 
+0

感谢哥哥!!!!这工作 – Faiez

1

你应该CSRF令牌字段添加到您的形式,以防止令牌匹配异常:

使用这个帮手您的形式:

{{ csrf_field() }} 

<input type="hidden" name="_token" value="{{ csrf_token() }}"> 

而且你提交按钮的类是btn-primary,这不是绿色的!

2

至于说关于“MassAssignmentException”,这意味着你尝试添加新的数据,但没有准备正确的属性$可填写

protected $fillable = ['name', ....]; 

https://laravel.com/docs/5.4/eloquent#mass-assignment

你也可以使用$ guared财产,只是为了保护你的数据。

protected $guarded = ['price'];