簡體   English   中英

Laravel雄辯的BelongTo模型訪問失敗

[英]Laravel Eloquent BelongTo Model Access fails

我正在嘗試通過使用Laravel Eloquent HasMany(反向)關系獲取數據,但是我沒有訪問權限。 每當我嘗試時,它都顯示試圖獲取非對象的屬性“名稱”

我有兩個模型。 類別文章 類別有許多 文章 這些是模型:

分類模型

protected $fillable = [
    'user_id', 'name', 
]; 

public function articles()
{
    return $this->hasMany('App\Models\Article');
}

文章模型

protected $fillable = [
    'user_id', 'headline', 'summary', 'body', 'status', 'cover_image', 'image_caption', 'image_credit', 'cover_video', 'video_caption', 'video_credit', 'category', 'meta', 'tags',
]; 

public function category()
{
    return $this->belongsTo('App\Models\Category','category');
}

物品管制員

public function pendingposts()
{
    $user = Auth::user();
    $articles = Article::all();
return view('admin.article.pending-posts')->with(['user' => $user, 'articles' => $articles]);
}

查看刀片 (admin.article.pending-posts)

@foreach($articles->where('status', 'submitted')->sortByDesc('updated_at') as $article)
<tr>
<td >{{ $article->headline }}</td>
<td>{{ $article->category->name }} </td>
</tr>
@endforeach

在刀片中,我無法通過雄辯的BelongsTo功能訪問類別,並且我也沒有得到消息背后的原因:

ErrorException(E_ERROR)試圖獲取非對象的屬性“名稱”(視圖:C:\\ xampp \\ htdocs \\ joliadmin \\ resources \\ views \\ admin \\ article \\ pending-posts.blade.php)

您應該嘗試這樣:

    public function pendingposts()
{
    $user = Auth::user();
    $articles = Article::with('category')
        ->where('status', 'submitted')
        ->sortByDesc('updated_at')
        ->get(); 

    return view('admin.article.pending-posts')->with(compact('user', 'articles'));
}

@foreach($articles as $article)
    <tr>
    <td>{{ $article->headline }}</td>
    <td>{{ $article->category->name }} </td>
    </tr>
@endforeach

更新的答案

分類模型

protected $fillable = [
    'user_id', 'name', 
]; 

public function article()
{
    return $this->hasMany('App\Models\Article');
}

在更改“ category_id”中的“ Article”表,“ category”列后,它起作用了。 感謝您的幫助。

暫無
暫無

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

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