如何在laravel中显示数据库名称

时间:2018-08-03 03:54:44

标签: laravel laravel-5

我想显示数据库中的数据

控制器

public function generatePDF(Request $request)
{
    $id = Auth::user()->id;
    $name = User::select("NAME")->where("id", $id)->get();
    $pdf = PDF::loadView('generatePDF', ['name'=>$name]);
    return $pdf->stream('generatePDF.pdf');
}

刀片

<h2>{{name}}</h2>

结果

[{"NAME":"name_from_database"}]

我可以不显示[{“ name”:}],而只显示数据值(name_from_database)吗?

7 个答案:

答案 0 :(得分:0)

像这样简单使用find

$name = User::find($id)->name;

或直接从auth

 $name  = \Auth::user()->name;

要登录,请使用\Auth::id()

答案 1 :(得分:0)

您可以使用:

$user_id = User::findOrFail($id)->first();
$name=$user_id->name;

测试laravel日志文件:   \ Log :: info($ name);

答案 2 :(得分:0)

  1. 使用first()代替get(),因为get()将返回数组,而first()将返回对象。
  2. DRY代码行1和2。简单使用:

    $ name = auth()-> user()-> name;

    获取当前已验证用户的名称。

  3. 将$ name发送给您查看很好

    $ pdf = PDF :: loadView('generatePDF',['name'=> $ name]);

  4. 在刀片文件中更正代码

    {{name}}-> {{$ name}}

    我希望这会对您有所帮助。 :)

答案 3 :(得分:0)

你好Aldi Rostiawan,

$nameGet = User::select("NAME")->where("id", $id)->get();
$nameFirst = User::select("NAME")->where("id", $id)->first();

在这两行代码中,差异仅是GetFirst

Get方法返回一个Array of objects。因此,例如,如果查询适用于许多记录,则代码将为您提供数组中的许多对象。或者,如果查询仅对一条记录为真,则它还将返回带有一个对象的数组。

如果您知道id是该表的主键,那么仅将提取一条记录,那么如果使用Get方法,则可以使用First函数。

First函数始终返回Object。如果查询适用于许多记录,则first方法也将仅将第一条记录作为对象返回。

似乎您只需要一个对象。

答案 4 :(得分:0)

您应该尝试以下操作:

控制器

public function generatePDF(Request $request)
{
    $id = Auth::user()->id;
    $rsltUser = User::where("id", $id)->first();
    $pdf = PDF::loadView('generatePDF', ['rsltUser'=>$rsltUser]);
    return $pdf->stream('generatePDF.pdf');
}

刀片

<h2>{{$rsltUser->name}}</h2>

答案 5 :(得分:0)

使用 VALUE() 仅显示名称。

在你的情况下:

<h2>{{$rsltUser->value('name')}}</h2>

答案 6 :(得分:-1)

您的名称变量是一个包含单个对象的数组,该对象具有NAME属性..要显示该值,您应该将脚本更改为

<h2>{{name[0]['NAME']}}</h2> 
相关问题