Php 访问在Laravel中返回模型的方法上的属性

Php 访问在Laravel中返回模型的方法上的属性,php,laravel,model,eloquent,blade,Php,Laravel,Model,Eloquent,Blade,我有一个Post模型,其功能如下: namespace App; use App\Category; class Post extends Model { public function category() { return $this->hasOne(Category::class); } } 我的分类模型是这样的 namespace App; use App\Post; class Category extends Model {

我有一个Post模型,其功能如下:

namespace App;

use App\Category;

class Post extends Model

{
    public function category()
   {

    return $this->hasOne(Category::class);

   }

}
我的分类模型是这样的

namespace App;

use App\Post;

class Category extends Model
{
    public function posts()
    {

    return $this->hasMany(Post::class);

    }
}
在我看来,我想访问每个帖子类别上的name字段

我假设我可以访问该模型,因此可以在我的刀片文件中执行以下操作:

{{ $post->category()->name }}
$post是正确的,我可以访问其他属性,但这会引发错误:

Undefined property: Illuminate\Database\Eloquent\Relations\HasOne::$name

有什么想法吗?

您应该将其作为属性访问:

{{ $post->category->name }}
函数category()应在Post模型中定义为:

public function category()
{
    return $this->belongsTo(Category::class, 'category_id');
}

如果
category\u id
有另一个名称,只需在参数中更改它。

您应该将其作为属性访问:

{{ $post->category->name }}
函数category()应在Post模型中定义为:

public function category()
{
    return $this->belongsTo(Category::class, 'category_id');
}

如果
category\u id
有另一个名称,只需在参数中更改它。

您可以轻松地执行以下操作:

$category=$post->category;
$cat_name=$category->name;
此外,如果您只需要类别的名称字段,则可以使用:

$cat_name=$post->category()->get(['name']);

您可以轻松做到这一点:

$category=$post->category;
$cat_name=$category->name;
此外,如果您只需要类别的名称字段,则可以使用:

$cat_name=$post->category()->get(['name']);

这会引发“尝试获取非对象的属性”错误。
Post
是否有
category\u id
字段?或者
Category
有一个
post\u id
字段?该字段称为Category。但是经过检查并将其更改为category_id之后,我得到了错误“SQLSTATE[42S22]:Column not found:1054未知列'categories.post_id'”类别也没有post id。以防万一,这将影响这仍然得到“试图获得非对象的属性”错误,但我怀疑我已经建立了我的雄辩的关系完全错误。“我的类别”表未保存帖子id。我只想通过id引用类别名称,而不是拥有属于它们的帖子列表。这可能吗(这会引发“试图获取非对象的属性”错误。
Post
有一个
category\u id
字段?或者
category
有一个
Post\u id
字段?该字段仅称为category。但是通过并将其更改为category\u id后,我得到了错误“SQLSTATE[42S22]:Column not found:1054未知列“categories.post_id”“categories”也没有post id。以防万一这会影响此操作仍然获取“Trying to get property of non object”错误,但我怀疑我设置的雄辩关系完全错误。我的类别表没有保存帖子id。我只想按id引用类别名称,而没有属于它们的帖子列表。这可能吗?:(