首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel未定义变量$articles

Laravel未定义变量$articles
EN

Stack Overflow用户
提问于 2017-10-17 09:38:48
回答 2查看 1.6K关注 0票数 3

我正忙于我自己的新闻系统,我正在使用Laravel 5。我对Laravel非常陌生,我使用教程来完成它。现在我的错误是“未定义的变量:文章”。

这是我的ArticlesController.php

代码语言:javascript
复制
<?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

代码语言:javascript
复制
@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

我尝试过一些事情,比如移除所有的东西,重新开始。没有什么能起作用的。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-17 09:41:48

您必须将变量传递给您的视图,否则视图不会“知道”该变量。如下所示:

代码语言:javascript
复制
<?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(),]);
    }
}

参考这里

票数 5
EN

Stack Overflow用户

发布于 2017-10-17 09:43:23

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

代码语言:javascript
复制
$articles = Article::get();

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

或者:

代码语言:javascript
复制
return view('pages.news', compact('articles'));

或者:

代码语言:javascript
复制
return view('pages.news')->with('articles', $articles);

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

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46787087

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档