2017-01-27 2 views
0

У меня есть эти отношения:hasOne отношения и ассоциированные()?

public function company(){ 
     return $this->hasOne('App\Models\User','personal_users_business_users', 'user_id', 'business_user_id'); 
    } 

Когда я попробовать это:

$user->company()->associate($business_user_id); 

Im получаю эту ошибку:

Call to undefined method Illuminate\Database\Query\Builder::associate()

У меня есть сводная таблица personal_users_business_users и имеет user_id, business_user_id, approved

А теперь я хочу вставить ert в этой сводной таблице business_user_id. Что я делаю неправильно?

+0

удалить круглые скобки после компании как так: $ user-> компания-> адъюнкт ($ business_user_id); –

+0

Я получил эту ошибку, затем неопределенный столбец: 7 ОШИБКА: column users.personal_users_business_users не существует – None

+0

вы отклоняете свое отношение неправильно: вы должны изменить эту часть: return $ this-> hasOne ('App \ Models \ User' , 'personal_users_business_users', 'user_id', 'business_user_id'); –

ответ

0

Ваши отношения должны быть такими:

public function company() 
    { 
     return $this->hasOne(User::class); 
    } 

Пользователь является модель, которую вы хотите, чтобы соединиться с,

и вы должны назвать отношения, как это:

$user->company->business_user_id; 

$ пользователь должен быть моделью, в которой у вас есть функция отношений. компании функция и business_user_id поля вы хотите получить

+0

Я не хочу, чтобы я хотел хранить данные в сводной таблице – None

0

associate() является методом отношений belongsTo, но это выглядит как из выше, вы пытаетесь вызвать его через hasOne отношений.

UPDATE

Вы можете создать функцию в App \ Models \ класс пользователя

public function company() { 
    return $this->belongsTo('MODEL_OF_COMPANY', 'foreign_key', 'owner_key', 'relation'); 
} 

затем вызвать $this->company()->associate($company)

+0

Тогда как я могу изменить это, чтобы заставить его работать? – None

+0

$ user-> company() -> update ($ business_user_id); –

+0

update() должен быть из массива типов, целого числа, указанного в – None

Смежные вопросы