php - Laravel 获取具有关系的用户帖子
问题描述
我有两个表user_blogs
和users
这种关系结构
用户博客:
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();
});
}
提前致谢
解决方案
我对用户及其帖子也有相同的结构。以下代码对我有用:
$results = Post::with(['user'])->where('user_id',$user_id);
$posts = $results->get();
Post.php
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class Post extends Model {
public function user() {
return $this->belongsTo(User::class, 'user_id');
}
}
推荐阅读
- sql - 如何在 SQL Server 中使用 WEEK 和 DAYOFWEEK 函数
- php - 向 Ratchet PHP Websocket Server 的客户端发送消息
- python - usinf TF Dataset API 大幅减速的原因
- nginx - S3 重定向到子目录
- javascript - 将 Ajax 调用组合到一个脚本标记中
- asp.net-mvc - 对 View MVC 中两列的值求和
- python - Twitter API searchtweets 模块出错 - result_stream_args=premium_search_args
- reporting-services - 如何计算 ssrs 报告中 2 个数据集中的 2 个字段的百分比
- python - Pandas Dataframe Boxplot Y 轴比例不正确
- postgresql - 删除一列 postgres 说它不存在