Laravel不返回view->上的数据with()

时间:2016-06-27 08:10:14

标签: php mysql laravel blade

我在return view()->with();语句上返回数据时遇到了一些麻烦。

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

MySQL表结构:

id |版本|活跃的|蛞蝓

以下是我的代码供您查看。

功能

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

2 个答案:

答案 0 :(得分:2)

tl:dr 您需要添加->get()才能完成fluent query

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

奖励您可以执行的所有方法都可以在API docs中找到。我最喜欢的一个是回显->toSql(),这样你就可以理智地检查SQL语句。

答案 1 :(得分:0)

更改此行:

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

要:

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

希望这有帮助。