Bre*_*ent 4 php laravel eloquent
当我在Laravel中使用UpdateOrNew或FirstOrNew时,我似乎得到了同样的错误,据我所知,我已经正确地实现了代码.
现行守则
$updateOrCreate = Rating::firstOrNew(
array(
'user_id' => Auth::user()->id,
'video_id' => $_POST['videoId']
)
);
$updateOrCreate->user_id = Auth::user()->id;
$updateOrCreate->video_id = $_POST['videoId'];
$updateOrCreate->rating = $_POST['rating'];
if($updateOrCreate->save()){
echo "saved";
}else{
echo "failed";
print_r($_POST);
};
Run Code Online (Sandbox Code Playgroud)
错误
error: {type:Illuminate\Database\Eloquent\MassAssignmentException, message:user_id,…}
file: "/home/celeb/public_html/dev/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php"
line: 411
message: "user_id"
type: "Illuminate\Database\Eloquent\MassAssignmentException"
Run Code Online (Sandbox Code Playgroud)
Joe*_*Joe 17
您需要在模型中启用质量分配,如下所示:
class User extends Eloquent {
protected $fillable = array('first_name', 'last_name', 'email');
}
Run Code Online (Sandbox Code Playgroud)
因此,任何可以批量分配的字段都应该在$ fillable变量中.
分配没有质量分配的值:
$user = new User;
$user->id = 3;
$user->name = "Joe";
$user->save();
Run Code Online (Sandbox Code Playgroud)
使用质量赋值分配值:
$userDetails = array('id' => 3, 'name' => 'Joe');
$user = User::create($userDetails);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9971 次 |
| 最近记录: |