为了账号安全,请及时绑定邮箱和手机立即绑定

无法从 1 到多关系访问 laravel 5.8 中的数据

无法从 1 到多关系访问 laravel 5.8 中的数据

PHP
开满天机 2023-09-08 14:10:32
我是 Laravel 新手。我一直在尝试在帖子和类别之间设置一对多的关系,我可以使用 post_id 访问类别,但反之则不行。我收到以下错误,“试图获取非对象的属性‘类别’”这是我的 web.php<?phpuse App\Post;Route::get('/test',function(){    return App\Post::find(3)->category;});这是来自 post.php    public function category()     {        return $this->belongsTo('App\Category');    }这是来自category.php public function posts()    {        return $this->hasMany('App\Post');    }这是Post.php<?phpnamespace App;use Illuminate\Database\Eloquent\Model;use Illuminate\Database\Eloquent\Softdeletes;class Post extends Model{    protected $fillable =[        'title', 'content', 'category_id', 'featured', 'slug'    ];    public function category()     {        return $this->belongsTo('App\Category');    }    public function tag()    {        return $this-> belongsToMany('App\Tag');    }    use SoftDeletes;    public function getFeaturedAttribute($featured)    {        return asset($featured);    }.......这是类别.php<?phpnamespace App;use Illuminate\Database\Eloquent\Model;class Category extends Model{protected $fillable = ['name'];    public function posts()    {        return $this->hasMany('App\Post');    }}
查看完整描述

3 回答

?
守着星空守着你

TA贡献1799条经验 获得超8个赞

也许您需要 App\Category::find(7)->posts 因为类别模型确实没有类别属性



查看完整回答
反对 回复 2023-09-08
?
胡子哥哥

TA贡献1825条经验 获得超6个赞

我不知道问题是什么,我关闭了所有内容并重新启动。一切都很好。



查看完整回答
反对 回复 2023-09-08
?
慕仙森

TA贡献1827条经验 获得超7个赞

find方法查找具有给定主键的模型。在您的 web.php 中App\Category::find(7)返回 id 7 的类别实例。我猜您想要做的就是App\Post::find(7)->category换句话说您正在尝试检索 id 7 的帖子并获取其类别;如果不是,您可能正在尝试访问 id 7 的某一类别的帖子,在这种情况下您应该编码App\Category::find(7)->posts



查看完整回答
反对 回复 2023-09-08
  • 3 回答
  • 0 关注
  • 103 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信