NikolasSumrak
@NikolasSumrak
Senior PHP Developer

Выдает ошибку получение HAS_MANY связи из модели (Invalid argument supplied for foreach()), как исправить?

Собственно, код:
Модель:
public function relations()
	{
		return array(
			'server' => array(self::MANY_MANY, 'AmxServerinfo', 'amx_admins_servers(admin_id, server_id)'),
			'admin_server' => array(self::HAS_MANY, 'AmxAdminsServers', 'admin_id'),
		);
	}


Контроллер:
$model=Amxadmins::model()->findByPk($id);
var_dump($model->admin_server);


Ошибка:
isxcFE.jpg
  • Вопрос задан
  • 2614 просмотров
Решения вопроса 1
NikolasSumrak
@NikolasSumrak Автор вопроса
Senior PHP Developer
Это магия какая-то.

2 дня бился над проблемой, как только спросил - сразу решил.

Проблема была в том, что в связанной таблице не было первичного ключа. Перекрыл в связанной модели метод primaryKey() и все заработало:

public function primaryKey()
	{
		//return 'id';
		// Для составного первичного ключа следует использовать массив:
		return array('admin_id', 'server_id');
	}
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы