Pull to refresh
2
0
Антон Чернецкий @developinwed

User

Send message
Если в about:config отключить проверку, выставив значение xpinstall.signatures.required в false, то можно и не использовать подпись?
Спасибо! Поправил
//Для текущего языка
Yii::$app->urlManager->createUrl('/myurl', array('lang_id'=>Lang::getCurrent()->id));

//Для кастомного
$lang = Lang::find()->where('local = :local', [':local' => 'en-En'])->one();
Yii::$app->urlManager->createUrl('/myurl', array('lang_id'=>$lang->id));
Спасибо за вопрос. Действительно, createUrl — не участвует в формировании action в форме. Так же он не участвует в виджетах, например GridView. Для этого пришлось немного переписать класс LangRequest, и переопределить в нем resolvePathInfo, а не resolveRequestUri. Изменения коснулись только пункта «Определения языка» и «Виджет переключения языков»(сменить Yii::$app->getRequest()->getUrl() на Yii::$app->getRequest()->getLangUrl()). Изменения внес в статью. Теперь в формах и виджетах урлы формируются корректно.
Сомневался в добавлении этого в статью. Добавлю комментом. Обычно делаем через таблицу связей. Типичный пример для блога и постов.
Таблица post(модель Post) — храним метаинформацию, которая не имеет отношения к контенту. То есть такие поля: id, owner_id, date_create, date_update.
Таблица post_lang(модель PostLang) — связь контента по языкам. Поля: id, post_id, lang_id, name, description. Соответственно поля post_id — это id из таблицы post, lang_id — это id из таблицы lang. name и description — контент на соответствующем языке.
В модель Post добавляем отношение:

public function getContent($lang_id=null)
{
$lang_id = ($lang_id === null)? Lang::getCurrent()->id: $lang_id;

return $this->hasOne(PostLang::className(), ['post_id' => 'id'])->where('lang_id = :lang_id', [':lang_id' => $lang_id]);
}

Тогда в отображении, для текущего языка, контент можно получить так: $post->content->name; — заголовок поста, $post->content->description; — сам пост.
Или для контента на определенном языке, задав идентификатор языка($lang_id): $post->getContent($lang_id)->name; $post->getContent($lang_id)->description;

Information

Rating
Does not participate
Location
Киев, Киевская обл., Украина
Date of birth
Registered
Activity