Model, когда использовать?

Общие вопросы по использованию фреймворка. Если не знаете как что-то сделать и это про Yii, вам сюда.
Аватара пользователя
flashimage
Сообщения: 1517
Зарегистрирован: 2011.01.23, 12:43

Re: Model, когда использовать?

Сообщение flashimage »

По большому счёту это обёртка вокруг четырёх классов CActiveRecord, CDbCriteria, CPagination и CSort.
Вы уверены, что читали?
Бранчи это гомеоморфические эндофункторы, которые мапятся на субманифолды пространства Гилберта.
destin9000
Сообщения: 225
Зарегистрирован: 2013.03.10, 12:47

Re: Model, когда использовать?

Сообщение destin9000 »

flashimage писал(а):
По большому счёту это обёртка вокруг четырёх классов CActiveRecord, CDbCriteria, CPagination и CSort.
Вы уверены, что читали?
Да, я просто не понимаю зачем он нужен...
Аватара пользователя
anton44eg
Сообщения: 2716
Зарегистрирован: 2012.01.25, 13:37
Откуда: Киев

Re: Model, когда использовать?

Сообщение anton44eg »

Сгенерируйте CRUD и перейдите на страницу admin. Вот для этого и нужен
destin9000
Сообщения: 225
Зарегистрирован: 2013.03.10, 12:47

Re: Model, когда использовать?

Сообщение destin9000 »

destin9000 писал(а):Спасибо, я читал, но так и не понял для чего он..
Чем он отличается от CActiveRecord?

Прочитал про RBAC, понравилось:

Код: Выделить всё

$bizRule='return Yii::app()->user->name === "admin";';
$auth->createRole('admin', 'администратор', $bizRule);
 
$bizRule='return Yii::app()->user->isGuest;';
$auth->createRole('guest', 'гость', $bizRule);
Только вот куда данный код пихать - не понял.Или yii автоматически читает все файлы из папки config и надо просто создать там файл?
Как еще можно роли задавать?
destin9000
Сообщения: 225
Зарегистрирован: 2013.03.10, 12:47

Re: Model, когда использовать?

Сообщение destin9000 »

Наиболее простым способом.
Vespertilio
Сообщения: 271
Зарегистрирован: 2012.11.30, 07:33

Re: Model, когда использовать?

Сообщение Vespertilio »

destin9000 писал(а): Только вот куда данный код пихать - не понял.Или yii автоматически читает все файлы из папки config и надо просто создать там файл?
Вы как-то не внимательно ознакамливались с документацией. Не в обиду будет сказано, но если б вы прочитали хотя бы введение в Yii, или просто посмотрели бы свой index.php сгенерированный yiic, то увидели бы следующие строчки:

Код: Выделить всё

$yii=dirname(__FILE__).'/yii/framework/yii.php';
$config=dirname(__FILE__).'/protected/config/main.php';
Где первая, это адрес к собственно фреймворку, а вторая на конфиг файл вашего приложения. Yii не читает все что хранится в config/* .
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: Model, когда использовать?

Сообщение maleks »

Yii не читает все что хранится в config/*
Это да, тут он сморозил, но вопрос то был в другом - не доказать неверность его догадки, а "Только вот куда данный код пихать - не понял", на который вы почему то не ответили, хотя внимательно ознакамливаетесь с документацией.
Vespertilio
Сообщения: 271
Зарегистрирован: 2012.11.30, 07:33

Re: Model, когда использовать?

Сообщение Vespertilio »

maleks писал(а):
Yii не читает все что хранится в config/*
Это да, тут он сморозил, но вопрос то был в другом - не доказать неверность его догадки, а "Только вот куда данный код пихать - не понял", на который вы почему то не ответили, хотя внимательно ознакамливаетесь с документацией.
Я не читал про RBAC, по этому и не ответил на этот вопрос. Про конфиги упомянул только из-за того что это чуть ли не первые строки с чего начинается гайд (http://www.yiiframework.com/doc/guide/1 ... sics.entry). Я сам изучаю Yii и соответственно много еще чего не знаю и не хотел никого обидеть.
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: Model, когда использовать?

Сообщение maleks »

destin9000, в соседней теме по аналогичному вопросу кое что прояснилось с RBAC.
destin9000
Сообщения: 225
Зарегистрирован: 2013.03.10, 12:47

Re: Model, когда использовать?

Сообщение destin9000 »

Vespertilio писал(а):
destin9000 писал(а): Только вот куда данный код пихать - не понял.Или yii автоматически читает все файлы из папки config и надо просто создать там файл?
Вы как-то не внимательно ознакамливались с документацией. Не в обиду будет сказано, но если б вы прочитали хотя бы введение в Yii, или просто посмотрели бы свой index.php сгенерированный yiic, то увидели бы следующие строчки:

Код: Выделить всё

$yii=dirname(__FILE__).'/yii/framework/yii.php';
$config=dirname(__FILE__).'/protected/config/main.php';
Где первая, это адрес к собственно фреймворку, а вторая на конфиг файл вашего приложения. Yii не читает все что хранится в config/* .
Т.е данный код надо в конфигурационный файл пихать?Вы в своем уме?

maleks, спасибо.
Последний раз редактировалось destin9000 2013.03.13, 12:17, всего редактировалось 1 раз.
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: Model, когда использовать?

Сообщение maleks »

Т.е данный код надо в конфигурационный файл пихать?
он вроде этого и не советовал.
destin9000
Сообщения: 225
Зарегистрирован: 2013.03.10, 12:47

Re: Model, когда использовать?

Сообщение destin9000 »

Вот всё в yii понимаю(сейчас изучаю), но RBAC нихрена не понимаю....
Для того, что бы задать обычные роли мне надо написать 3 класса, массив, непонятно с чем, и в конфиге добавить несколько десятков строк?
1)

Код: Выделить всё

'defaultRole[b]s[/b]' => array('guest'), 
Какого хрена roles?Т.е стандартных ролей может быть несколько, можно наверно сразу админом стать?
2)

Код: Выделить всё

type' => CAuthItem::TYPE_ROLE,
Ну это ясно, тип:роль, может быть еще задание.Но почему надо указывать через константу(которой кстати не существует - http://www.yiiframework.com/doc/api/1.1 ... tem,посему как узнать что это - хз), а прямо не через

Код: Выделить всё

'type'=>'role' 
3)Во вторых - почему метод getId надо создавать в классе UserIdentity а getRole уже в WebUser, логично ведь что оба метода должны быть в WebUser.
И:

Код: Выделить всё

// Далее логин нам не понадобится, зато имя может пригодится
            // в самом приложении. Используется как Yii::app()->user->name.
            // realName есть в нашей модели. У вас это может быть name, firstName
            // или что-либо ещё.
            $this->username = $user->realName; 
$this->username
// в самом приложении. Используется как Yii::app()->user->name.
?Там username, а тут уже name..

Вот непонимаю я этого всего..
dmeroff
Сообщения: 101
Зарегистрирован: 2012.06.05, 14:32
Откуда: Петрозаводск
Контактная информация:

Re: Model, когда использовать?

Сообщение dmeroff »

1) Через массив, потому что в нем можно указать не только роли, но и задания и операции, а их может быть и несколько.

2) Константы существуют - https://github.com/yiisoft/yii/blob/1.1 ... thItem.php
destin9000
Сообщения: 225
Зарегистрирован: 2013.03.10, 12:47

Re: Model, когда использовать?

Сообщение destin9000 »

Код: Выделить всё

$bizRule='return Yii::app()->user->name === "admin";';
$auth->createRole('admin', 'администратор', $bizRule);
 
$bizRule='return Yii::app()->user->isGuest;';
$auth->createRole('guest', 'гость', $bizRule); 
Так как дать знать фреймворку, что он должен увидеть данный код?
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: Model, когда использовать?

Сообщение maleks »

К этому коду надо добавить

Код: Выделить всё

$auth->save(); 
и выполнить его.
В результате этого создастся файл 'protected/data/auth.php' из которого эту конфу компонент CPhpAuthManager будет брать при своей инициализации (метод init())
destin9000
Сообщения: 225
Зарегистрирован: 2013.03.10, 12:47

Re: Model, когда использовать?

Сообщение destin9000 »

maleks писал(а):К этому коду надо добавить

Код: Выделить всё

$auth->save();
и выполнить его.
В результате этого создастся файл 'protected/data/auth.php' из которого эту конфу компонент CPhpAuthManager будет брать при своей инициализации (метод init())
Спасибо)
А как выполнить, скопировать данный код в контроллер?
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: Model, когда использовать?

Сообщение maleks »

да, только не забудь сперва

Код: Выделить всё

$auth=Yii::app()->authManager; 
destin9000
Сообщения: 225
Зарегистрирован: 2013.03.10, 12:47

Re: Model, когда использовать?

Сообщение destin9000 »

maleks писал(а):да, только не забудь сперва

Код: Выделить всё

$auth=Yii::app()->authManager; 
Огромное спасибо)

Можеш ответить еще на один вопросик?
1)Если в виджете мне надо использовать некую функцию, для обрезки текст(неважно), где ее правильнее написать?В самом виджете как private function?
Аватара пользователя
maleks
Сообщения: 1992
Зарегистрирован: 2012.12.26, 12:56

Re: Model, когда использовать?

Сообщение maleks »

да, в виджете, если она не использует св-ва виджета, то static тогда сделать, а так - private.
3)Во вторых - почему метод getId надо создавать в классе UserIdentity
Потому что в WEBUSER::login передается объект идентификации и от него ожидается id-шка.
тоже самое насчет:
$this->username
$this->username - $this тут - это объект идентификации, после того как он передастся в WEBUSER::login из него как раз и создастся Yii::app()->user->name
rak
Сообщения: 2181
Зарегистрирован: 2010.11.02, 23:40
Контактная информация:

Re: Model, когда использовать?

Сообщение rak »

destin9000 писал(а): 1)Если в виджете мне надо использовать некую функцию, для обрезки текст(неважно), где ее правильнее написать?В самом виджете как private function?
Такие функции лучше выносить в хелперы(по сути класс со статическими методами), т.к. наверняка обрезать текст придется не в 1 месте
ЗЫ. А вообще не стоит все вопросы в 1 теме задавать, а то начали с моделей, а тут уже и rbac и обрезка текста и прочее
Ответить