0
我正在使用Laravel 5.3广告在通过hasMany
关系保存时存在问题。Laravel在Pivot表上的一对多插入
我有表雇员和活动有一对多的关系,即每个员工将执行许多活动。
当我使用associate()
加入活动对员工发给我一个错误:
BadMethodCallException in Builder.php line 2440:
Call to undefined method Illuminate\Database\Query\Builder::associate()
下面是DB结构和代码:
数据库结构:
employee (1st table)
– employee_id
– employee_name
- created_at
- updated_at
activity (2nd table)
– activity_id
– activity_name
- created_at
- updated_at
employee_activity (pivot table)
– employee_activity_employee_id
– employee_activity_activity_id
模特类雇员:
class Employee extends Model
{
protected $table = 'employee';
protected $primaryKey = 'employee_id';
public function activity() {
return $this->hasMany('App\Models\Activity', 'employee_activity', 'employee_activity_employee_id', 'employee_id');
}
}
模型类活动:
class Activity extends Model
{
protected $table = 'activity';
protected $primaryKey = 'activity_id';
public function employee() {
return $this->belongsTo('App\Models\Employee', 'employee_activity', 'employee_activity_activity_id' ,'activity_id');
}
}
控制器:
public function EmployeeActivityAssociation()
{
$employee_id = Input::get('employee_id');
$activity_ids = Input::get('activity_id'); // This is an array of activities
$employee = Employee::find($employee_id);
if (!empty($employee)) {
//Adding activity under the employee
foreach ($activity_ids as $id) {
$activity = Activity::find($id);
$employee->activity()->associate($activity);
$employee->save();
}
return 'Activities asscoiated to employee';
}
else {
return 'Employee not found';
}
}
难道我定义错误在这里我的关系?
http://stackoverflow.com/questions/19868838/call-to-undefined-method-illuminate-database-query-builderassociate这可以帮助你。 –
它是多对多的。 –