當我嘗試使用文件上傳功能保存數據時,出現以下錯誤,因爲我已經向我的表聲明瞭一個新的uploader_id,應該從我在模型。Laravel Relationships(user-upload)
Illuminate \ Database \ QueryException
SQLSTATE[HY000]: General error: 1364 Field 'uploader_id' doesn't have a default value (SQL: insert into `assets` (`filename`, `title`, `body`, `filepath`, `extension`, `realpath`, `mime`, `updated_at`, `created_at`) values (users.mov, New, dummy text data. , /uploads/User Test/2014-03-04_00:48, mov, /private/var/tmp/phpHDpmEI, video/quicktime, 2014-03-04 00:48:59, 2014-03-04 00:48:59))
在我的模型定義了以下
用戶模型:其中資產在數據庫中上載表的表名
public function assets() {
return hasMany('assets');
}
上傳型號:
public function user() {
return belongsTo('user', 'uploader_id');
}
我曾在我的控制器中嘗試使用Upload :: create(array())函數將數據發佈到d atabase,添加另一個名爲'uploader_id'=> Auth :: user() - > id的參數;但沒有一項工作。
每次用戶上傳文件時,將uploader_id傳遞給表單的最佳方式是什麼?
謝謝!所以引導函數何時被觸發?這是如何工作的? – cch
@cchacholiades - 引導方法被稱爲[第一次訪問課程](https://github.com/laravel/framework/blob/master/src/Illuminate/Database/Eloquent/Model.php#L237)。這給你一個設置事件的機會,這是我在這裏完成的。 –