gpt4 book ai didi

php - 我需要通过使用引用帖子中的表用户的外键来了解帖子的所有者

转载 作者:行者123 更新时间:2023-11-29 18:29:34 27 4
gpt4 key购买 nike

违反完整性约束:1452 无法添加或更新子行:外键约束失败(projects.posts、CONSTRAINT posts_user_id_foreign FOREIGN关键(user_id)引用用户(id))

class CreatePostsTable extends Migration
{
/**
* Run the migrations.
*
* @return void
*/
public function up()
{
Schema::create('posts', function (Blueprint $table) {
$table->engine ='InnoDB';
$table->increments('id');
$table->string('jobtitle');
$table->string('location');
$table->string('jobtype');
$table->string('jobdesc');
$table->string('companyname');
$table->string('howto');
$table->integer('user_id')->unsigned();
$table->timestamps();
});

Schema::table('posts', function($table) {
$table->foreign('user_id')->references('id')->on('users');
});
}

/**
* Reverse the migrations.
*
* @return void
*/
public function down()
{
Schema::dropIfExists('posts');
}
}

发布模型

class Posts extends Model
{
//
protected $fillable =[
'jobtitle',
'location',
'jobtype',
'jobdesc',
'companyname',
'howto',
'user_id'
];

protected $guarded = array();

public static $rules = array();

public function users()
{
return $this->belongsTo('App\User');
}
}

用户模型

public function posts()
{
return $this->hasMany('App\Posts','user_id ');
}

最佳答案

你不需要在 MySQL 端声明外键,你至少必须创建一个 user_id 列(你确实有),Laravel 将使用它作为外键。

要获取创建帖子的用户,只需引用关系即可。

$owner = \App\Post::user->name; // get the user who created the post.

关于php - 我需要通过使用引用帖子中的表用户的外键来了解帖子的所有者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45825746/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com