有3个实体。文章,用户和类别。 制品
class Article extends Model{
public function user()
{
return $this->belongsTo(User::class);
}
public function category()
{
return $this->belongsTo(Category::class);
}
}
用户
class User extends Authenticatable{
public function articles()
{
return $this->hasMany(Article::class);
}
分类
class Category extends Model{
public function articles()
{
return $this->hasMany(Article::class);
}
}
要保存在数据库中创建文章的用户,我在控制器中使用以下代码:
class TestController extends Controller
{
public function test()
{
$user = Auth::user();
$article = new Article(['name' => 'test']);
//save record
$user->articles()->save($article);
}
}
但我还需要在文章的表格中保留文章的类别。 我收到控制器中的文章类别:
$category = Category::find(2);
但是如何在$ article中保存这两个实体($ user和$ category)。我需要在文章表中有两个单元格 - user_id和category_id。 请告诉我。
答案 0 :(得分:2)
手动设置ID:
$article->user_id = Auth::id();
$article->category_id = $category->id;
$article->save();
答案 1 :(得分:1)
使用associate
方法。
class TestController extends Controller
{
public function test()
{
$user = Auth::user();
$category = Category::first(); // find category
$article = Article::create(['name' => 'test']); //save record
$article->user()->associate($user);
$article->category()->associate($category);
}
}