我是Laravel(实际上是任何PHP框架)的新手,但对PHP并不陌生。我创建了我的第一个项目,并设法使用预构建的Auth
系统登录。我创建了一个名为 AccountSettings
的新路由、控制器和模型,因此当我转到/account
时,它预填充了登录的用户帐户信息(姓名和电子邮件)
Route::get('account', 'AccountSettingsController@index');
Route::post('account', 'AccountSettingsController@updateAccount');
当我点击表单上的提交按钮时,我可以看到我正在发布的表单数据(姓名、电子邮件和_token);
我AccountSettingsController
是:
<?php namespace AppHttpControllers;
use AppHttpControllersController;
use AppAccountSettings;
use Input;
use Request;
use Auth;
class AccountSettingsController extends Controller {
/**
* Display a listing of the resource.
*
* @return Response
*/
public function index()
{
return view('AccountSettings/index');
}
public function updateAccount()
{
var_dump(Input::all());
return view('AccountSettings/index');
}
}
我尝试通过以下方式保存用户信息:
public function updateAccount()
{
$id = Auth::user()->id;
$user = User::find($id);
$user->name = Request::input('name');
$user->email = Request::input('email');
$user->save();
return view('AccountSettings/index');
}
但导致错误说User not found
.可以理解,因为它不在我的use
顶部。我尝试了use User
但没有奏效。
另一件事,这种东西应该在模型中处理,对吗?几个小时以来,我一直在试图弄清楚这一点,我搜索的任何内容都没有真正的关系。有人可以指出我正确的方向吗?
在 Laravel 5 中,您需要use AppUser;
文件顶部,而不是use User;
(绝对不是use Users;
)。User
模型位于 App
命名空间中。
旁注:这是不必要的:
$id = Auth::user()->id;
$user = User::find($id);
只需做:
$user = Auth::user();
并获得更干净的代码,并减少一个数据库查询。