【问题标题】:Laravel eloquent - undefined variableLaravel 雄辩 - 未定义的变量
【发布时间】:2017-04-13 19:50:52
【问题描述】:

我一直在学习laravel,现在我是第一次使用eloquent。但我得到一个错误。它不识别代表查询的变量。我在网上搜索了解决方案,但无法解决问题。我使用 laravel 5.4 版。有人可以帮忙吗?

错误:“未定义变量:文章”(在 teste7.blade 上)

代码:

网络

Route::get('teste7', 'CentralController@teste7');
Route::get('/article/{article}', ['as' => 'article', 'uses' => 'CentralController@article']);

控制器

    use App\article;

    function teste7(){
    $articles=article::pagination(4);
    return view('teste7');
}
function article($article){
    return view($article);
}

teste7

{{ $articles->total() }} articles
<b>In this page ({{ $articles->count() }} articles )</b>
<ul>
@foreach ($articles as $article)
<li> <a href="{{route('article', ['artigo' => $article->Name])}}">{{ 
$article->Name }}</a></li>
@endforeach
</ul>
{{ $articles->links() }}

【问题讨论】:

    标签: mysql laravel eloquent


    【解决方案1】:

    您必须使用第二个参数将数据传递到视图中。您可以在documentation here找到更多信息。

    function teste7() {
        $articles = article::pagination(4);
        return view('teste7', ['articles' => $articles]);
    }
    

    【讨论】:

      【解决方案2】:
      class CentralController extends Controller
      {
         public function teste7()
         {
             $articles = article::pagination(4);
      
             // returns view 'teste7.blade.php' and passes the $articles variable along
             return view('teste7', compact('articles'));
         }
      }
      

      在您的 article() 函数中,您没有正确返回视图。在您的 teste7() 函数中,您正在返回一个视图 ('teste7.blade.php'),但没有将任何变量传递给该视图。

      将变量从控制器传递到视图非常重要。否则,它们将无法从视图中访问。

      【讨论】:

      • 好的。现在它显示“调用未定义的方法 Illuminate\Database\Query\Builder::pagination()”。这是什么意思? pagination() 是否仅适用于“用户”模型?
      猜你喜欢
      • 1970-01-01
      • 2020-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-11-08
      • 1970-01-01
      • 2023-03-11
      • 2022-07-25
      相关资源
      最近更新 更多