【问题标题】:Only display selected fields to the view using Laravel Query Builder使用 Laravel Query Builder 仅在视图中显示选定的字段
【发布时间】:2019-10-08 10:15:59
【问题描述】:

每次刷新页面时,我都会在屏幕上一次显示一个引号。数据库中的数据显示正常;问题是当我只需要引用和作者姓名时,我也会在屏幕上显示(id)。如何在视图中“排除” id 字段?

控制器

public function index()
{
    $quotes = DB::table('quotes')->inRandomOrder()->first();

    return view('home', compact('quotes'));
}

刀片/视图

@foreach($quotes as $quote)
    <p>{{$quote}}</p>
@endforeach

【问题讨论】:

  • 试试$quotes = DB::table('quotes')-&gt;select('quote', 'author')-&gt;inRandomOrder()-&gt;first();。用表中的字段名称替换 'quote' 和 'author'
  • 你应该把你的答案放在一个真实的答案中,这样我就可以投票和接受:D

标签: laravel eloquent laravel-blade


【解决方案1】:

编辑基于@devk的评论:

通常回答 OP 问题,但此处的代码(以及 OP 帖子中的代码) 完全没有意义。 ->first() 将返回 null 或单个 引用,但 @foreach(..) 就像引用的集合一样使用

你可以这样查询:

$quote = DB::table('quotes')->select('quote', 'author')->inRandomOrder()->first();

将“quote”和“author”替换为表中的字段名称。
并返回报价:

return view('home', compact('quote'));

并在刀片中显示对象:

<p>{{$quote}}</p>

或显示字段:

@isset($quote)
    // $quote is defined and is not null...
    <p>{{$quote->quote}}</p>
    <small>{{$quote->author}}</small>
@endisset

如果要显示多个引号,请执行以下查询:

$quotes = DB::table('quotes')->select('quote', 'author')->inRandomOrder()->get();  

$quotes = DB::table('quotes')->select('quote', 'author')->inRandomOrder()->take(5)->get();

并且在刀片中你可以循环遍历集合:

@foreach($quotes as $quote)
    <p>{{$quote}}</p>
@endforeach

@foreach($quotes as $quote)
    <p>{{$quote->quote}}</p>
    <small>{{$quote->author}}</small>
@endforeach

【讨论】:

  • 我可以在6分钟内接受答案!谢谢@porloscerros
  • 通常回答 OPs 的问题,但这里的代码(以及 OPs 帖子中的代码)并不完全有意义。 -&gt;first() 将返回 null 或单引号,但 @foreach(..) 被用作引号的集合。
  • 哦!我错过了。我编辑了我的答案。谢谢@devk!
猜你喜欢
  • 1970-01-01
  • 2021-02-07
  • 2020-04-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多