• 我正在做一个Laravel项目,我试图在两个模型之间建立一个一对多的关系

  • 如何使用eloquent创建新用户并将多个帖子与该用户相关联?

  • 如何检索属于特定用户的所有帖子?

下面是我的"User"和"Post"模型的代码:

// User.php
class User extends Model
{
    public function posts()
    {
        return $this->hasMany(Post::class);
    }
}
// Post.php
class Post extends Model
{
    public function user()
    {
        return $this->belongsTo(User::class);
    }
}
  • 我希望能够创建一个新用户并使用eloquent将多个帖子与该用户相关联,我希望能够通过建立的关系检索属于特定用户的所有帖子

推荐答案

首先,创建一张可容纳post人的桌子.它应该是这样的.

In migration file

Schema::create('posts', function (Blueprint $table) {
    $table->id();
    $table->unsignedBigInteger('user_id');
    $table->string('title');
    $table->text('body');
    $table->timestamps();
    $table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
});

创建用户和帖子.(如果不存在)

$user = User::create(['name' => 'John Doe', 'email' => 'john@example.com', 'password' => Hash::make('password')]);

$post1 = new Post(['title' => 'First', 'body' => 'Content 1']);
$post2 = new Post(['title' => 'Second', 'body' => 'Content 2']);

$user->posts()->saveMany([$post1, $post2]);

In controller

$user = User::find($userId);  // created user ID
$posts = $user->posts; 

Or

$user = User::with('posts')->find($userId); # recommended. Cz it uses a single query

您可以使用Laravel factoriesLaravel Tinker来创建虚拟数据

Php相关问答推荐

如果活动订阅者的购物车中有订阅项目,则在WooCommerce签出中显示通知

按制造商、型号和年份范围判断数据的存在性

在WooCommerce Checkout帐单地址字段后插入自定义按钮

在WooCommerce管理订单页面中显示区域名称

如何限制WordPress自定义分类术语页面中的术语数量

在WooCommerce产品变体SKU字段旁边添加自定义输入字段

获取并判断WooCommerce用户订阅结束日期

根据WooCommerce购物车页面中的自定义 Select 添加费用

使用php ZipArhive类将Zip压缩文件分成多个部分

CKEDITOR-如何在PHP中判断提交后的空数据

既然setSQLLogger()已被弃用,如何使用中间件在 Doctrine 3 中记录查询执行时间?

如何使用 PHP 将带有图像的文本上传到 Linkedin?

如何在 Laravel 迁移中使用日期时间和天数?

PHP 在数组中搜索值

Laravel Eloquent:复杂的多对多关系以及缺失关系的默认值

在WooCommerce中显示 checkout 的高级自定义字段(Advanced Custom Fields)并保存其值

同时执行odbc_execute、odbc_fetch_row和odbc_result

PHP for each 函数打印 td

Eloquent 的模型更新了它应该 laravel php 的更多行

图像不会显示在生产中的 Laravel 应用程序中