【问题标题】:Laravel undefined variable $articlesLaravel 未定义变量 $articles
【发布时间】:2017-10-17 09:38:48
【问题描述】:

我正忙于自己的新闻系统,并且正在使用 Laravel 5。我对 Laravel 很陌生,并且使用教程来完成它。现在我遇到了这个错误“未定义的变量:文章”。

这是我的 ArticlesController.php

<?php
namespace App\Http\Controllers;

use App\Article;
use Illuminate\Http\Request;

class ArticlesController extends Controller
{
    public function index()
{
    return view('pages.news');
    }
}

这是我的 news.blade.php

@foreach ($articles as $article)
<!-- Post -->
<div class="blog-item">
    <!-- Post title -->
    <h2 class="blog-item-title font-alt">
        <a href="news-single.html">{{ $article->title }}</a>
    </h2>
    <!-- Post data -->
    <div class="blog-item-data">
        <a href="#"><i class="fa fa-clock-o"></i> 5 December</a>
        <span class="seperator">&nbsp;</span>
        <a href="#"><i class="fa fa-user"></i> John Doe</a>
        <span class="seperator">&nbsp;</span>
        <i class="fa fa-folder-open"></i>
        <a href="#">Category</a>, <a href="#">Category</a>
        <span class="seperator">&nbsp;</span>
        <a href="#"><i class="fa fa-comments"></i> 5 Comments</a>
    </div>
    <!-- Media gallery -->
    <div class="blog-media">
        <ul class="clearlist content-slider">
            <li><img src="images/portfolio/full-project-1.jpg" alt="Blog image"></li>
        </ul>
    </div>
    <!-- Text intro -->
    <div class="blog-item-body">
        <p>{{ $article->body }}</p>
    </div>
    <!-- Read more -->
    <div class="blog-item-foot">
        <a href="news-single.html" class="btn btn-mod btn-round btn-small">Read More <i class="fa fa-angle-right"></i></a>
    </div>
</div>
@endforeach

我尝试了几件事,例如删除所有内容并重新开始。什么都没有。

【问题讨论】:

    标签: php laravel


    【解决方案1】:

    您必须将变量传递给您的视图,否则视图不会“知道”该变量。像这样:

    <?php
    namespace App\Http\Controllers;
    
    use App\Article;
    use Illuminate\Http\Request;
    
    class ArticlesController extends Controller
    {
        public function index()
        {
            return view('pages.news', ['articles' => Article::all(),]);
        }
    }
    

    参考here

    【讨论】:

      【解决方案2】:

      您不会将任何数据从控制器传递到视图,因此请执行以下操作:

      $articles = Article::get();
      
      return view('pages.news', ['articles' => $articles]);
      

      或者:

      return view('pages.news', compact('articles'));
      

      或者:

      return view('pages.news')->with('articles', $articles);
      

      https://laravel.com/docs/5.5/views#passing-data-to-views

      【讨论】:

        猜你喜欢
        • 2019-04-29
        • 1970-01-01
        • 2015-05-15
        • 2020-02-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多