首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为foreach() Facade\Ignition\Exceptions\ViewException提供的参数无效

为foreach() Facade\Ignition\Exceptions\ViewException提供的参数无效
EN

Stack Overflow用户
提问于 2020-01-06 08:03:56
回答 2查看 980关注 0票数 0

代码在没有@foreach语句的情况下运行良好。当它被添加时,我得到以下错误:

代码语言:javascript
复制
Undefined variable: articles (View: C:\laravel\laravel\resources\views\about.blade.php)
$articles is undefined.
Make the variable optional in the blade template. Replace {{ $articles }} with {{ $articles ?? '' }}

当我添加?? ''时,它会创建以下错误:

代码语言:javascript
复制
Facade\Ignition\Exceptions\ViewException
Invalid argument supplied for foreach()

下面是更大胆的:https://github.com/matthoek/Articles的完整代码

这是我的观点:

代码语言:javascript
复制
        <? if (is_array($articles) || is_object($articles)) ?>
            {
                @foreach ($articles ?? '' as $article)
                {
                    <li class = "first">
                        <h3>{{ $article->title}}</h3>
                        <p><a href="#">{{ $article->excerpt }}</a></p>          
                    </li>
                @endforeach
                }           
            }
        </ul>

这是我的控制器

代码语言:javascript
复制
<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
use App\Article;

class ArticlesController extends Controller
{
    public function index()
    {
        $articles = App/Article::latest()->get();
        //$articles = Review::all();
        //$article = Review::all();

        return view('articles.index',['articles'=>$articles]);
        //return view('articles.index', ['articles' => $articles]);
    }

    public function show($id)
    {
        $article = App/Article::find($id);

        //return view('articles.show', ['article' => $article]);
        return view('articles.show')->with('article');
    }

    public function create()
    {
        return view('articles.create');
    }

    public function store()
    {
        //validation

        //clean up
        $article = new Article();
        $article->title = request('title');
        $article->excerpt = request('excerpt');
        $article->body = request('body');
        $article->save();

        return redirect('/articles');
    }

    public function edit()
    {
        return view('articles.edit');
    }
}

这是我的路径文件web.php的部分

代码语言:javascript
复制
Route::group(['middleware' => ['web']], function () 
{

    Route::get('/about', function () {
        $article = App\Article::latest()->get();
        return view('about', compact('about', 'articles'));
        //return $article;
    });
}

我已经将routes文件的部分更改为以下内容,但它似乎不起作用。

代码语言:javascript
复制
 return view('about')->with(['article'=> $article]);

我已确保web \Illuminate\View\Middleware\ShareErrorsFromSession::class,app/Http/Kernel.php in middlewareGroups属性中包含以下内容

我已经将foreach循环更改为each循环,并在行中得到相同的错误:

代码语言:javascript
复制
<h3>{{article->title}}</h3>

如果我应该发布更多的代码,请让我知道。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-01-06 08:31:19

在你的路线中:

代码语言:javascript
复制
    Route::get('/about', function () {
        $articles = App\Article::latest()->get();
        return view('about', compact('about', 'articles'));
    });

它将返回一个集合,您可以直接循环它:

代码语言:javascript
复制
             <ul>
                @foreach ($articles as $article)
                <li class = "first">
                   <h3>{{ $article->title}}</h3>
                   <p><a href="#">{{ $article->excerpt }}</a></p>          
                </li>
                @endforeach
              </ul>
票数 2
EN

Stack Overflow用户

发布于 2020-01-06 08:34:01

更新您的视图

代码语言:javascript
复制
 <? if (is_array($articles) || is_object($articles)) ?>
        {
            @foreach($articles as $article)

                <li class = "first">
                    <h3>{{ $article->title}}</h3>
                    <p><a href="#">{{ $article->excerpt }}</a></p>          
                </li>
            @endforeach   
        }
    </ul>

这个错误在你的foreach循环中:https://www.php.net/manual/en/control-structures.foreach.php

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

https://stackoverflow.com/questions/59605294

复制
相关文章

相似问题

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