[英]Laravel Eloquent Create does nothing
因此,我正在學習Laravel,並嘗試使用輸入表單的數據在數據庫中創建一個新用戶。 在我的控制器中,我得到了很好的表單數據,並將其傳遞給帶有可以通過的規則的驗證器,但是當我嘗試創建User時,沒有任何內容被添加到數據庫中,而是重定向到基本的“ Whoops,好像出了問題。” 錯誤頁面,而不是我告訴它的頁面。
這是我的控制器功能:
public function doRegister() {
$rules = array(
'fname'=>'required|alpha|min:2',
'lname'=>'required|alpha|min:2',
'email'=>'required|email|unique:users',
'company'=>'required|alpha|min:2',
'password'=>'required|alpha_num|between:6,12|confirmed',
'password_confirmation'=>'required|alpha_num|between:6,12'
);
$validator = Validator::make(Input::all(), $rules);
if($validator->passes()) {
User::create(array(
'fname' => Input::get('fname'),
'lname' => Input::get('lname'),
'email' => Input::get('email'),
'password' => Hash.make(Input::get('password')),
'company' => Input::get('company'),
'created_at' => date('Y-m-d H:m:s'),
'updated_at' => date('Y-m-d H:m:s')
));
return Redirect::to('login')->with('message', 'Thank you for registering!');
} else {
return Redirect::to('register')
->with('message', 'The following errors occurred')
->withErrors($validator)
->withInput(Input::except('password'));
}
}
刪除User :: create()部分,重定向可以正常工作。 首先,我將所有數據庫字段都包含在用戶模型的可填充數組中。 仍然不起作用。 有任何想法嗎?
不是您問題的直接答案,而是找到問題的最快方法。
開啟app.php
將這張圖片中的最后一行從(根據您的情況)從false修改為true:
完成后,laravel會告訴您錯誤是什么。
肯定的一個錯誤是
'password' => Hash.make(Input::get('password')),
應該與::
'password' => Hash::make(Input::get('password')),
您不需要這個:
'created_at' => date('Y-m-d H:m:s'),
'updated_at' => date('Y-m-d H:m:s')
laravel將為您做到這一點!
如果在此之后仍然無法正常運行,請嘗試運行
php artisan dump-autoload
從您的終端生成優化的類加載器!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.