[Из песочницы] Создаем поведение (behaviour) для Yii2

Часто, а на самом деле практически всегда, при создании сайта необходимо, чтобы страницы сайта открывались не по id сущности в базе, а по текстовому идентификатору, назовем его slug.post/view/1 => post/view/testovaya-novost (из url’а стоило бы убрать и view, но урок не о том) Самым примитивным путем можно создать в таблице post поле slug, в модели Post соответственно появляется новый атрибут, в представление (view) добавляем новый input, в который ручками вбиваем slug.

use yii\helpers\Html; use yii\widgets\ActiveForm;

/** * @var yii\web\View $this * @var common\models\Post $model * @var yii\widgets\ActiveForm $form */ ?>

field ($model, 'name')→textInput ([ 'maxlength' => 255 ]) ?> field ($model, 'slug')→textInput ([ 'maxlength' => 255 ]) ?> field ($model, 'content')→textarea ([ 'rows' => 6 ]) ?>

isNewRecord? Yii: t ('app', 'Create') : Yii: t ('app', 'Update'), [ 'class' => $model→isNewRecord? 'btn btn-success' : 'btn btn-primary' ]) ?>

Читать дальше →

© Habrahabr.ru