2016-01-02 33 views
17

Tôi nhận được lỗi này:Laravel 5: MassAssignmentException trong Model.php

MassAssignmentException in Model.php line 448: _token

Khi tôi đang sử dụng phương pháp create. Vui lòng xem lại mã bên dưới:

Contacts.php (Model):

class Contacts extends Model 
{ 
    protected $table = ['name', 'mobile', 'email', 'address', 'created_at', 'updated_at']; 
} 

ContactsController.php (Controller):

public function store(Request $request) 
{   
    $inputs = $request->all(); 
    $contacts = Contacts::Create($inputs); 
    return redirect()->route('contacts.index'); 
} 
+0

[MassAssignmentException trong Laravel] (https://stackoverflow.com/q/22280136/6521116) –

Trả lời

70

Đối với Mass Assignment Exception: bạn nên xác định tất cả các các trường của mô hình mà bạn muốn chuyển nhượng hàng loạt thông qua các hoạt động tạo hoặc cập nhật trên thuộc tính $fillable:

protected $fillable = ['name', 'mobile', 'email', 'address', 'created_at', 'updated_at']; 

Bên cạnh đó, lĩnh vực $table nên chỉ chứa tên bảng của mô hình:

protected $table = 'your_table_name'; 
+1

Nhờ nó workd – Sandeep

+1

Làm thế nào tôi có thể quên này. Cảm ơn bạn. Công trinh. – pbalazek

3

Điều này có thể xảy ra trong trường hợp nếu bạn đã sử dụng nhập khẩu sai lớp. nếu bạn đang sử dụng Mô hình người dùng.

Wrong nhập

// mostly IDE suggestion 
use Illuminate\Foundation\Auth\User; 

đúng mẫu nhập

use App\User; 

tôi đã trải qua này. có thể giúp ai đó.

+0

Có điều đó đã xảy ra (: Tự động nhập vào IDE đôi khi có thể gây nhầm lẫn –

3

Bạn có thể tất cả các cột để điền:

protected $guarded = array(); 

Thêm mô hình của bạn.

0

Nếu tất cả những điều trên không thành công, bạn có thể thử làm theo.

Đặt sau sau không gian tên.

use Eloquent; 

Đặt sau ở đầu phương thức store của bạn.

Eloquent::unguard(); 

như:

public function store(Request $request) 
{   
    Eloquent::unguard(); 
    $inputs = $request->all(); 
    $contacts = Contacts::Create($inputs); 
    return redirect()->route('contacts.index'); 
} 

này không được khuyến khích mặc dù, vì điều này làm cho mọi thứ dễ bị tấn công. Nhưng nếu bạn cần sửa chữa nhanh, điều này có thể hữu ích.

0

Kiểm tra Mô hình bạn đã nhập hay không. Nếu không thì hãy sử dụng.

<?php 

namespace App\Http\Controllers\Auth; 
use App\Http\Controllers\Controller; 
use App\User;