Laravel获得关系的用户帖子

时间:2018-05-23 14:34:17

标签: php laravel

我有两个表user_blogsusers这个关系结构

UserBlogs:

class UserBlogs extends Model
{
    protected $fillable = ['user_id', 'blog_content'];

    public function user()
    {
        return $this->belongsTo(User::class);
    }

    ...
}

用户:

class User extends Authenticatable
{
    ...

    public function blogs()
    {
        return $this->hasMany(UserBlogs::class);
    }
}

在控制器中,我可以使用以下代码获取用户博客:

$userBlogs = User::find($id)->blogs;

我得到的结果可能是输出,但为什么这段代码不起作用而且我得到错误:

$userBlogs = auth()->user()->blogs();

$userBlogs = auth()->user()->blogs;

迁移:

public function up()
{
    Schema::create('user_blogs', function (Blueprint $table) {
        $table->increments('id');
        $table->integer('user_id')->unsigned();
        $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
        $table->string('blog_title');
        $table->longText('blog_content');
        $table->timestamps();
    });
}

提前致谢

2 个答案:

答案 0 :(得分:4)

我对用户及其帖子也有相同的结构。以下代码适用于我:

object

post.php中

$results = Post::with(['user'])->where('user_id',$user_id);
$posts = $results->get();

答案 1 :(得分:0)

注意:由于Eloquent推断表名的行为,您应该将模型命名为复数而不是单数。

UserBlogs应该改为UserBlog