【问题标题】:Laravel not returning data on view->with()Laravel 没有在 view->with() 上返回数据
【发布时间】:2016-10-29 03:57:36
【问题描述】:

我在返回 return view()->with(); 语句中的数据时遇到了一点问题。

我得到的错误只是一个带有默认 laravel auth 导航栏的空白屏幕。

MySQL 表结构:

标识 |版本 |活跃 |蛞蝓

这是我的代码供你查看。

功能

function index() {
  $changelogs = Changelogs::where('active', '1')->orderBy('created_at', 'desc');
  return view('changelog.index')->with('changelogs', $changelogs);
}

路线(以防万一)

Route::get('/release-notes', 'Changelogs\MyController@index');

查看

@foreach($changelogs as $changelog)
<div class="row">
   div class="col-md-10 col-md-offset-1">
     div class="panel panel-default">
      <div class="panel-heading">
        <h3><a href="{{ url('/release-notes/'.$changelog->slug) }}">{{ $changelog->version }}</a></h3>
      </div>
      <div class="panel-body">
        {!! $changelog->body !!}
      </div>
    </div>
  </div>
</div>
@endforeach

【问题讨论】:

    标签: php mysql laravel blade


    【解决方案1】:

    tl:dr 您需要添加-&gt;get() 以完成您的fluent query

    function index() {
      $changelogs = Changelogs::where('active', '1')->orderBy('created_at', 'desc')->get();
      return view('changelog.index')->with('changelogs', $changelogs);
    }  
    

    奖励您可以执行的所有方法都可以在API docs 中找到。我最喜欢的方法之一是回显 -&gt;toSql(),这样您就可以检查 SQL 语句了。

    【讨论】:

    • 谢谢老兄。 :)
    【解决方案2】:

    改变这一行:

    $changelogs = Changelogs::where('active', '1')-&gt;orderBy('created_at', 'desc');

    收件人:

    $changelogs = Changelogs::where('active', '1')-&gt;orderBy('created_at', 'desc')-&gt;get();

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-28
      • 2022-01-10
      • 2016-07-12
      • 2014-07-30
      • 2020-04-16
      • 2021-07-14
      • 1970-01-01
      相关资源
      最近更新 更多