php - 使用 laravel 5 和 Auth 更新登录用户帐户设置

标签 php laravel laravel-5

到目前为止,我是 laravel(实际上是任何 PHP 框架)的新手,但对 PHP 并不陌生。我创建了我的第一个项目并设法使用预构建的 Auth 系统登录。我创建了一个名为 AccountSettings 的新路由、 Controller 和模型,所以当我转到 /account 时,它会预先填充已登录的用户帐户信息(姓名和电子邮件)

Route::get('account', 'AccountSettingsController@index');
Route::post('account', 'AccountSettingsController@updateAccount');

当我点击表单上的提交按钮时,我可以看到我正在发布的表单数据(姓名、电子邮件和_token);

我的 AccountSettingsController 是:

<?php namespace App\Http\Controllers;

use App\Http\Controllers\Controller;
use App\AccountSettings;
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 App\User; 在文件的顶部,而不是 use User; (绝对不是 use Users ;)。 User 模型位于 App 命名空间中。

旁注:这是不必要的:

$id = Auth::user()->id;
$user = User::find($id);

只是做:

$user = Auth::user();

并获得更清晰的代码和更少的数据库查询。

关于php - 使用 laravel 5 和 Auth 更新登录用户帐户设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28999066/

相关文章:

PHP 无法访问新创建的 zip 文件

php - 将 URL 参数注入(inject) Zend_Navigation 菜单

php - Laravel 是否可以改进 Auth::id() 查询?

javascript - 在 PHP Laravel 中将变量从 foreach 循环传递到我的 Controller

php - 如何使邮件形成工作

php - Zyxel NSA310 - PHP 显示源而不是执行

php - 为什么我无法在 Laravel 5.2 中注册和登录?

laravel - 更新 laravel 6.2 后 [App\Http\Controllers\Auth\ConfirmPasswordController] 不存在

php - 根据 id mysql laravel 5 创建 uniqueID

mysql - 使用别名格式化 Where 子句的正确方法 - Laravel