我有两个表user_blogs
和users
这个关系结构
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();
});
}
提前致谢
答案 0 :(得分:4)
我对用户及其帖子也有相同的结构。以下代码适用于我:
object
$results = Post::with(['user'])->where('user_id',$user_id);
$posts = $results->get();
答案 1 :(得分:0)
注意:由于Eloquent推断表名的行为,您应该将模型命名为复数而不是单数。
UserBlogs
应该改为UserBlog
。