我有两种模式 公司:
public function slug(){
return $this->hasOne(Slug::class);
}
和Sl:
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列中
答案 0 :(得分:0)
假设您要向ID为1的公司添加子弹。
这应该有帮助!
$company = App\Company::find(1);
$company->slug()->save(new App\Slug([$data]));
答案 1 :(得分:0)
我认为您不需要为此使用单独的表格。您将始终拥有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)。而且您可以忘记它们。