簡體   English   中英

為 foreach() Facade\\Ignition\\Exceptions\\ViewException 提供的參數無效

[英]Invalid argument supplied for foreach() Facade\Ignition\Exceptions\ViewException

沒有@foreach語句,代碼運行良好。 添加后,出現以下錯誤:

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 ?? '' }}

當我添加?? '' ?? ''它會產生錯誤:

Facade\Ignition\Exceptions\ViewException
Invalid argument supplied for foreach()

這是更大膽的完整代碼: https : //github.com/matthoek/Articles

這是我的觀點:

        <? 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>

這是我的控制器

<?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 的部分

Route::group(['middleware' => ['web']], function () 
{

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

我已將路由文件的部分更改為以下內容,但似乎不起作用。

 return view('about')->with(['article'=> $article]);

我已確保以下內容在我的app/Http/Kernel.php位於web \\Illuminate\\View\\Middleware\\ShareErrorsFromSession::class, middlewareGroups屬性中\\Illuminate\\View\\Middleware\\ShareErrorsFromSession::class,

我已將 foreach 循環更改為 each 循環,並且在線上出現相同的錯誤:

<h3>{{article->title}}</h3>

讓我知道我是否應該發布更多代碼。

在您的路線中:

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

它將返回一個集合,您可以循環它:

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

更新您的觀點

 <? 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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM