Size: a a a

2020 August 09

DS

Dmitriy S in Yii Framework 3
Сергей Предводителев
setDefaultParams - задаёт для всех и для layout и для view.

Но во  ViewRenderer для layout ещё есть дополнительные параметры.
Ну да, так обычно там и указываются общие вещи для всех конроллеров и latout
источник

СП

Сергей Предводителев... in Yii Framework 3
Dmitriy S
Ну да, так обычно там и указываются общие вещи для всех конроллеров и latout
У меня к этому и нет вопросов. То что должно быть везде там и передаётся.
источник

DS

Dmitriy S in Yii Framework 3
Сергей Предводителев
У меня к этому и нет вопросов. То что должно быть везде там и передаётся.
А к чему есть?
источник

СП

Сергей Предводителев... in Yii Framework 3
Dmitriy S
А к чему есть?
Например в layout мне надо передать canonical-ссылку, пользователя и курс валюты.  А во все view это не надо передавать.

Как это сделать?
источник

DS

Dmitriy S in Yii Framework 3
Сергей Предводителев
Например в layout мне надо передать canonical-ссылку, пользователя и курс валюты.  А во все view это не надо передавать.

Как это сделать?
$viewRenderer->withLayout('@views/my-layout', ['currencyRate' => $rate])
источник

СП

Сергей Предводителев... in Yii Framework 3
Где этот код размещать?
источник

DS

Dmitriy S in Yii Framework 3
Сергей Предводителев
Где этот код размещать?
В конструкторе контроллера
источник

СП

Сергей Предводителев... in Yii Framework 3
Dmitriy S
В конструкторе контроллера
А если мне нужно это по-умолчанию сделать
источник

DS

Dmitriy S in Yii Framework 3
Или непосредственно в action
источник

СП

Сергей Предводителев... in Yii Framework 3
Получается нужно провайдер делать для viewrenderer где и конфигурировать его?
источник

DS

Dmitriy S in Yii Framework 3
Сергей Предводителев
А если мне нужно это по-умолчанию сделать
По умолчанию для чего? ДЛе всех лейаутов через WebView::setDefaultParameters
источник

СП

Сергей Предводителев... in Yii Framework 3
Dmitriy S
По умолчанию для чего? ДЛе всех лейаутов через WebView::setDefaultParameters
это засунет и во view, а нужно только в layout
источник

DS

Dmitriy S in Yii Framework 3
Сергей Предводителев
это засунет и во view, а нужно только в layout
Чем оно тебе мешает во view
?
источник

СП

Сергей Предводителев... in Yii Framework 3
Dmitriy S
Чем оно тебе мешает во view
?
не правильно это, лишние данные, которые там не должны быть доступны
источник

DS

Dmitriy S in Yii Framework 3
ЕСли нужно для группы контроллеров, как в модуле, то делается абстрактный контроллера и там конфижится viewRender для всех контроллеров модуля
источник

DS

Dmitriy S in Yii Framework 3
Сергей Предводителев
не правильно это, лишние данные, которые там не должны быть доступны
Значит передвай в кострукторе котроллера, если это критично
источник

СП

Сергей Предводителев... in Yii Framework 3
Dmitriy S
ЕСли нужно для группы контроллеров, как в модуле, то делается абстрактный контроллера и там конфижится viewRender для всех контроллеров модуля
Если это нужно для всего приложения, почему нельзя сразу сконфигрурировать ViewRenderer ?
источник

DS

Dmitriy S in Yii Framework 3
Сергей Предводителев
Если это нужно для всего приложения, почему нельзя сразу сконфигрурировать ViewRenderer ?
Почему нельзя? Можно. Там же в конфиге пропеисываешь
[
ViewRenderer::class => [
       '__construct()' => [
           'viewBasePath' => '@views',
       ],
      'withLayout()' => ['@views/layout/main', ['currencyRate' => Currency::rate]]  
   ],
]
источник

DS

Dmitriy S in Yii Framework 3
Можно еще в конструктор layoutParameters добавить, тоже норм вариант
источник

СП

Сергей Предводителев... in Yii Framework 3
Dmitriy S
Почему нельзя? Можно. Там же в конфиге пропеисываешь
[
ViewRenderer::class => [
       '__construct()' => [
           'viewBasePath' => '@views',
       ],
      'withLayout()' => ['@views/layout/main', ['currencyRate' => Currency::rate]]  
   ],
]
О как, не знал о таком варианте :)
источник