[英]How can I store data into database? (One to One Relationship Laravel)
我有两个模型公司:
public function slug(){
return $this->hasOne(Slug::class);
}
和子弹:
public function company(){
return $this->belongsTo(Company::class);
}
子弹表:
Schema::create('slugs', function (Blueprint $table) {
$table->increments('id');
$table->integer('company_id')->unsigned()->index()->nullable();
$table->foreign('company_id')->references('id')->on('companies');
$table->string('slug');
});
如何将数据存储到Slug表中? 我要将公司ID存储到company_id列中,并将公司名称的str_slug()存储到slug列中
假设您要向ID为1的公司添加子弹。
这应该有所帮助!
$company = App\Company::find(1);
$company->slug()->save(new App\Slug([$data]));
我认为您不需要为此使用单独的表格。 您将始终拥有1个可能不会更改的值(由于SEO)。 但是...您可以使用观察者https://laravel.com/docs/5.7/eloquent#observers在观察者中的created()方法上,您可以像这样:
public function created(Company $company){
\App\Slug::create(['company_id' => $company->id, 'slug' => str_slug($company->name)]);
}
如果您的在公司的表中作为字段,则可以执行相同的操作。 只需使用create()方法和$ company-> slug = str_slug($ company-> name)。 您可以忘记它们。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.