代码之家  ›  专栏  ›  技术社区  ›  Cloud Strife

如何仅打印特定的列值?

  •  -1
  • Cloud Strife  · 技术社区  · 1 年前

    控制器:

     $dataAnnouncement = DB::table('announcements')->where('id', 2)->get('message');
    
        return view('student.index', 
        compact('dataAnnouncement'));
    

    公告视图:

     <textarea id="announcement" name="announcement" rows="4" cols="50">{{ $dataAnnouncement }}</textarea>
    

    输出:

    enter image description here

    我只想输出Brandyn。

    1 回复  |  直到 1 年前
        1
  •  1
  •   Tim Lewis    1 年前

    ->get() 返回 Collection 属于 倍数 您的行 announcements 表,但你只要求一张唱片 ->where('id', 2)

    而不是 ->get() 使用 ->first() :

    $dataAnnouncement = DB::table('announcements')
    ->where('id', 2)
    ->first();
    
    return view('student.index', ['dataAnnouncement' => $dataAnnouncement]);
    

    注: ['dataAnnouncement' => $dataAnnouncement] compact('dataAnnouncement') 是等效的,但文档建议使用 [] 语法而不是 compact()

    然后,在您看来,访问 message 属性:

    <textarea id="announcement" name="announcement" rows="4" cols="50">{{ $dataAnnouncement->message }}</textarea>
    

    附加注意:如果您没有带 id 共2个 公告 数据库表。您可以使用 ->firstOrFail() 自动触发 HTTP 404 如果找不到记录,或手动处理 null 通过做这样的事情来获得价值 {{ $dataAnnouncement?->message }} {{ $dataAnnouncement ? $dataAnnouncement->message : '' }}