我正在學(xué)習(xí) laravel,更新標(biāo)簽代碼后標(biāo)簽出現(xiàn)問題。當(dāng)我點(diǎn)擊標(biāo)簽時(shí),我遇到了這個(gè)問題:Facade\Ignition\Exceptions\ViewException 為 foreach() 提供的參數(shù)無效(視圖:C:\blog\resources\views\articles\index.blade.php)我在控制器中的代碼:<?phpnamespace App\Http\Controllers;use App\Article;use App\Tag;use Illuminate\Http\Request;class ArticlesController extends Controller{public function index(){ if(request('tag')) { $articles = Tag::where('name', request('tag'))->firstOrFail()->articles; } else { $articles = Article::latest()->get(); } return view ('articles.index',['articles' => $articles]);}展示頁(yè)面@foreach ($articles as $article ) <div class="content"> <div class="title"> <h2> <a href="/articles/{{$article->id}}"> {!! $article->title !!} </a> </h2> </div> <p> <img src="/images/banner.jpg" alt="" class="image image-full"/> </p> {!! $article->exceprt!!} </div> @endforeach這是雄辯的標(biāo)簽:<?phpnamespace App;use Illuminate\Database\Eloquent\Model;class Tag extends Model{public function article(){ return $this->belongsToMany(Article::class);}}
2 回答

HUX布斯
TA貢獻(xiàn)1876條經(jīng)驗(yàn) 獲得超6個(gè)贊
該錯(cuò)誤表明文章數(shù)組為空。
您需要添加條件來檢查數(shù)組是否為空。
@if(!empty($articles))
@foreach ($articles as $article)
@endforeach
@endif
這不是獲取文章的正確方法。我建議你使用 whereHas 檢查標(biāo)簽。

Cats萌萌
TA貢獻(xiàn)1805條經(jīng)驗(yàn) 獲得超9個(gè)贊
您articles
在標(biāo)簽?zāi)P椭械年P(guān)系未定義。因此,當(dāng)您打電話時(shí),Tag::where('name', request('tag'))->firstOrFail()->articles
您得到的不是 Collection 而是null
.
這就是您收到此錯(cuò)誤的原因,因?yàn)槟鸁o法循環(huán)訪問null
變量。
你應(yīng)該修復(fù)你的關(guān)系:
public function articles() // <---- You were missing the 's'{ return $this->belongsToMany(Article::class); }
- 2 回答
- 0 關(guān)注
- 248 瀏覽
添加回答
舉報(bào)
0/150
提交
取消