当前位置: 首页 > 知识库问答 >
问题:

Laravel雄辩的模型访问失败

卫增
2023-03-14

我试图通过使用Laravel Eloquent获得数据,但我无法访问。无论何时尝试,它都显示尝试获取非对象的属性“name”

我有两个模型。类别和文章。类别有许多文章。以下是模型:

类别模型

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)

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

在这里的刀片,我不能访问类别通过雄辩的属于功能,我没有得到背后的原因得到的消息:

ErrorException(E_ERROR)试图获取非对象的属性“name”(视图:C:\xampp\htdocs\joliadmin\resources\views\admin\article\pending posts.blade.php)

共有2个答案

裴凯定
2023-03-14

在更改了“category_id”中的“Article”表“category”列之后,它就工作了。谢谢你的帮助。

华修永
2023-03-14

你应该试试这个:

    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');
}
 类似资料:
  • 如何制作一对多访问器? 用户模型: 历史模型: 如果我真的喜欢下面,它将工作。 用户模型: 历史模型: 控制器: 刀片视图: 它起作用了! 但是,我应该怎么做,如果我想要这个: 我喜欢 历史模型: 它不工作! 如果我编码像 它会回来的 此集合实例上不存在属性[happy]。 如果我编码像 它会回来的 未定义的属性:Illumb\Database\Eloquent\Relations\HasMany

  • 我有这种多对多的关系Laravel雄辩的关系模型是: 我可以在控制器中执行此操作: 在这里,我只通过直接枢轴关系获得email_subtype_id,但必须做额外的工作来获得相关的电子邮件子类型名称。 我需要获得电子邮件子类型名称[直接]从第三个模型电子邮件子类型关系oneTo很多[有很多和属性到]涉及到枢轴模型与电子邮件子类型模型使用类似的东西: 请帮忙!

  • 所以我有三个模型: 挑战 使用者 参赛者 挑战有它的主键 用户只有它的主键 而且进入者有外键挑战id和用户id 如果我从挑战中查询(我有挑战标识),用雄辩的方式让所有与该挑战相关的用户的最佳方式是什么?我基本上想要所有进入者数据和所有用户数据的集合。我一直在研究这种方法,但我似乎无法让它发挥作用。

  • 我有三种模式——博客、帖子、评论。博客有很多帖子,帖子有很多评论 当我写作时 它会给所有的博客发帖子和评论。但我将如何获得那些由管理员用户创建的博客,即评论表中的用户id。在哪里写入

  • 我希望避免一直使用表名,而使用别名。

  • 提前感谢您的时间。如果你赶时间,跳到粗体部分。 我有一个以下用例:应用程序的每个用户都使用自己的一组前缀表来创建有说服力的模型(即,对于code_发票使用Invoice.php,对于code_客户使用Client.php)。前缀在用户表中定义(例如users.code)。 在Laravel 5.2中,我已经能够通过在用户登录后读取运行时设置的配置(或会话)变量来轻松设置雄辩模型的$table属性。