maks
(Ua Maks)
March 5, 2009, 9:25pm
1
http://www.yiiframew…ru/database.arr
с отображением сущностей которые вытягиваются по FK вроде бы все ясно
а вот как поступить с update и insert, тобишь что бы заполнялся лист для выбора значения
кстати
Quote
In the above, we use COMMENT keyword to describe the foreign key constraint which can be read by AR to recognize the described relationship.
каким образом проявляется при генерации модели и круд
rosko
(A)
March 5, 2009, 10:41pm
2
Вот insert:
$post = new Post()
$post->title = "Yahoo";
$post->save();
А вот update:
$post = Post::model()->findByPk($_GET["id"]);
$post->title = "Yahoo";
$post->save();
Вроде бы ничего сложно. Али я чего-нить не понял?
rosko
(A)
March 5, 2009, 10:46pm
3
Quote
кстати
Quote
In the above, we use COMMENT keyword to describe the foreign key constraint which can be read by AR to recognize the described relationship.
каким образом проявляется при генерации модели и круд
При генерации модели, получаешь что-то вроде
public function relations()
{
return array(
'author'=>array(self::BELONGS_TO, 'User', 'id'),
'editor'=>array(self::BELONGS_TO, 'User', 'id'),
'blocks'=>array(self::HAS_MANY, 'Block', 'module'),
);
}
А при круде должен получать выпадающий список. Кажется так и есть, но уже не помню.
maks
(Ua Maks)
March 5, 2009, 10:59pm
4
Quote
Вроде бы ничего сложно. Али я чего-нить не понял?
ну что-то подобное http://www.yiiframew…log/post.create
<?php echo CHtml::activeDropDownList($post,'status',Post::model()->statusOptions); ?>
но там статус константы
а если это таблица?
п.с. чето у меня констрейты в коментах к таблице никак не повлияли на модель…
rosko
(A)
March 5, 2009, 11:26pm
5
Неважно. Там самое главное, что это должен быть ассоциативный массив.
вот что-то типа:
public function getStatusOptions()
{
return array(
0=>'Draft',
1=>'Published',
2=>'Archived',
);
}
Таблицу использовать здесь уже не проблема. Выбираешь 2 столбца: id и название, а потом из этого лепишь нужного вида массив.
rosko
(A)
March 5, 2009, 11:31pm
6
Quote
п.с. чето у меня констрейты в коментах к таблице никак не повлияли на модель...
Комментарий должен быть что-то вроде этого:
CREATE TABLE bar
(
id INTEGER NOT NULL PRIMARY KEY,
fooID INTEGER
COMMENT 'CONSTRAINT FOREIGN KEY (fooID) REFERENCES Foo(id)'
);
, где fooID - поле в исходной таблице, Foo - название связываемой таблицы, id - поле в связываемой таблице.
А вообще констрейнты в комментах - это изврат, который придуман специально для тех у кого таблицы в формате MyISAM. А вот InnoDB поддерживает констрейнты в нормальном sql-ном виде.
p.s. В sqlite констрейнты вообще кажется работать не должны: ни через комменты, ни через что.
maks
(Ua Maks)
March 6, 2009, 12:09am
7
в общем примерно че получилось
в методе getOptions() пишем
$A = array();
$List=FKModel::model()->findAll();
foreach($List as $n=>$model):
$A[$model->ID] = $model->NAME;
endforeach;
return $A;
таким образом мы получаем список ну допустим стран для выбора при регистрации пользователя