猿问

如何在控制器中从 MySQL 访问数据属性

我在学习 Laravel 框架,但不知道如何访问控制器中的属性。


public function uuid(Request $request)

{

    if($request->get('uuid') == null) return abort(404);

    $uuid = $request->get('uuid');

    $users = DB::table('users')->select('*')->where('uuid', $uuid)->get();


    $result = array([

        'id' => $users['id'],

        'username' => $users['username'],

        'uuid' => $users['uuid'],

    ]);


    return view ('dashboard')->with('username', $result['username']);

}

在我的dashboard.blade.php


{{$username}}


当我来到仪表板时,它会显示这样的错误


ErrorException (E_NOTICE) 未定义索引:用户名


慕斯王
浏览 142回答 3
3回答

元芳怎么了

使用First()而不是get()您将获得对象以便访问数据。$users = DB::table('users')->select('*')->where('uuid', $uuid)->first();$result = array([    'id' => $users->id,    'username' => $users->username,    'uuid' => $users->uuid,]);return view ('dashboard')->with('username', $result['username']);现在排序的方式来做到这一点。 $user = DB::table('users')->select('*')->where('uuid', $uuid)->first(); $username = ''; if(!empty($user)){    $username = $user->username  }return view ('dashboard',compact('username'));

蛊毒传说

$users是用户的集合。所以你不能访问像这样的用户的属性$users['id'];如果你想从数据库中获取一个用户对象,你需要调用first()而不是get()可能的解决方案$user = DB::table('users')->select('*')->where('uuid', $uuid)->first();

holdtom

您可以使用 firstOrFail(); $users = DB::table('users')->select('*')->where('uuid', $uuid)->firstOrFail();$result = array([    'id' => $users->id,    'username' => $users->username,    'uuid' => $users->uuid,]);return view ('dashboard')->with('username', compact('username'));
随时随地看视频慕课网APP
我要回答