gsk*_*gsk 6 php laravel eloquent laravel-5 laravel-5.1
我有两张桌子,employees和employee types.
employees 有以下字段
并employee_type具有以下字段,
我雄辩的模型功能是,
Employee
class Employee extends Model {
public function employeeTypes() {
return $this->belongsTo('App\Model\EmployeeType');
}
}
Run Code Online (Sandbox Code Playgroud)
EmployeeType
class EmployeeType extends Model {
}
Run Code Online (Sandbox Code Playgroud)
我不确定这是否是保持关系的正确方法.插入时我可以遵循以下两种方法:
1.设置ID
$emp = new Employee();
$emp->employee_type_id = $request->type_id;
$emp->name = $request->name;
$emp->save();
Run Code Online (Sandbox Code Playgroud)
2.设置关系
$emp->employeeTypes()->associate(EmployeeType::findOrFail($request->employee_types_id));
$emp->name = $request->name;
$emp->save();
Run Code Online (Sandbox Code Playgroud)
这两种方法都运行良好.
这两种插入方式有什么区别?
哪种方法最好?
luk*_*ter 13
在比较选项之前,还有第三个:
使用associate()只用ID
$emp->employeeTypes()->associate($request->employee_types_id);
Run Code Online (Sandbox Code Playgroud)
现在让我们看看这些方法的优点和缺点是什么:
associate()与模型一起使用associate()仅使用id$emp->employeeTypes我个人更喜欢使用associate()(基本上所有的关系方法,即使它们并不总是必要的).如果我已经有模型我通过了,否则我只会使用id.您已经定义了与外键等的关系,因此您也可以使用它.
| 归档时间: |
|
| 查看次数: |
1765 次 |
| 最近记录: |