0
你能幫我嗎?我正在使用Laravel創建我自己的登錄過程。順便說一句,我在拉拉維爾還是個新人,而且我的知識還不夠。如何在Laravel中使用控制器訪問模型函數?
我的場景是我創建了一個代碼,它帶有一個可以訪問模型函數的控制器中的參數。這個模型函數會查找用戶數據是否正確或在數據庫中匹配。但我還沒有創建它。我只想看看我的參數中的數據是否可以在模型中訪問。
問題是在模型中我無法訪問參數值。
這裏是我的代碼:
在我的控制器
public function login() {
$rules = array(
'employee_id' => 'required',
'employee_password' => 'required'
);
$validate_login = Validator::make(Input::all(), $rules);
if($validate_login->fails()) {
$messages = $validate_login->messages();
return Redirect::to('/')->withErrors($messages);
} else {
$userdata = array(
'id' => Input::get('employee_id'),
'password' => Hash::make(Input::get('employee_password'))
);
$validateDetail = Employee::ValidateLogin($userdata); //pass parameter to model
}
}
這裏的模型功能
public function scopeValidateLogin($data)
{
fd($data); //fd() is my own custom helper for displaying array with exit()
}
的scopeValidateLogin()函數中,我打算使用查詢生成器來驗證登錄。
這裏是我的路線
Route::model('employee','Employee');
Route::get('/','[email protected]');
Route::get('/register', '[email protected]');
Route::post('/login','[email protected]');
Route::post('/handleRegister', function()
{
$rules = array(
'emp_code' => 'numeric',
'lastname' => 'required|min:2|max:15',
'firstname' => 'required|min:2|max:20',
'middlename' => 'min:1|max:20',
'password' => 'required|min:8|max:30',
'cpassword' => 'required|same:password'
);
$validate_register = Validator::make(Input::all(), $rules);
if($validate_register->fails()) {
$messages = $validate_register->messages();
return Redirect::to('register')
->withErrors($messages)
->withInput(Input::except('password','cpassword'));
} else {
$employee = new Employee;
$employee->emp_code = Input::get('emp_code');
$employee->lastname = Input::get('lastname');
$employee->firstname = Input::get('firstname');
$employee->middlename = Input::get('middlename');
$employee->gender = Input::get('gender');
$employee->birthday = Input::get('birthday');
$employee->password = Hash::make(Input::get('password'));
$employee->save();
Session::flash('success_notification','Success: The account has been successfully created!');
return Redirect::action('[email protected]');
}
}
);
現在運行的FD($數據)後,我的瀏覽器加載一個系列陣列,然後它會崩潰。 我不知道發生了什麼,但我認爲它向我的模型發送了多個請求。
我在做正確的方式訪問控制器內的模型?或者有沒有最好的辦法呢?
所以你的意思是我在控制器內進行驗證?我對MVC的理解是你所創建的數據庫中的每個事務都應該在模型中。 – Jerielle 2014-10-29 04:44:21
通常,模型表示一個表,但認證邏輯的實際執行應放置在控制器內。這是一個很好的Laravel認證演示:http://code.tutsplus.com/tutorials/authentication-with-laravel-4--net-35593 – 2014-10-29 04:45:04