interface ArticleInterface
{
public function getTitle();
public function getAuthor();
}
interface ArticleAuthorInterface
{
public function getName();
public function getID();
}
public function renderArticle(ArticleInterface $article)
{
return $this->renderPartial('_article', [
'author' => $article->getAuthor(),
'title' => $article->getTitle()
]);
}
class Article extends ActiveRecord implements ArticleInterface
{
// ...
}
public function actions()
{
return [
'error' => [
'class' => 'yii\web\ErrorAction',
],
...
];
}
'error' => [
'class' => 'yii\web\ErrorAction',
],
$orderKeys = [];
$relatedKeys = [];
foreach ($orders as $model) {
$orderKeys[] = $model->getPrimaryKey();
}
// получаем айдишники уже связанных заказов
foreach ($user->getOrders()->all() as $model) {
$relatedKeys[] = $model->getPrimaryKey();
}
// удаляем отсутствующие в $orderKeys связи
foreach (array_diff($relatedKeys, $orderKeys) as $id) {
$model = Order::findOne($id);
$user->unlink('orders', $model);
}
// добавляем новые связи
foreach (array_diff($orderKeys, $relatedKeys) as $id) {
$model = Order::findOne($id);
$user->link('orders', $model);
}
$products = $category->actionProducts()->all();
'urlManager' => [
'enablePrettyUrl' => true,
'enableStrictParsing' => false,
'showScriptName' => false,
'rules' => [
[ 'class' => 'yii\rest\UrlRule',
'controller' => ['tag' => 'tag'],
'prefix' => 'api/basicapp/<version:\w+>/json'
]
]
]
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
// остальной конфиг роутера
'http://<login:[\w\-]+>.example.com/<action:\w+>' => 'profile/<action>', // контроллер ProfileController должен существовать, и в нем надо бы реализовать behavior (или метод init) на проверку существования пользователя с таким логином
],
],
CHtml::tag('i', array('class'=>'glyphicon glyphicon-user'), false)
<i class="glyphicon glyphicon-user" />
CHtml::tag('i', array('class'=>'glyphicon glyphicon-user'), '');
<i class="glyphicon glyphicon-user"></i>