In case you need to override the default views (that you surely have to do if you use a different them than default's Bootstrap), Yii2 provides a mechanism that is really easy to do:
// ... other configuration here 'components' => [ 'view' => [ 'theme' => [ 'pathMap' => [ '@Da/User/resources/views' => '@app/views/user' ] ] ] ] // ...
The above code tells Yii2 to search on
@app/view/user for views prior to go to
@Da/User/resources/views. That is,
if a view is found on
@app/view/user that matches the required render it will be displayed instead of the one on
You need to remember that the folder structure on your new location must match that of the module. For example, if we
wish to override the
login.php view using the above setting, we would have to create the following structure on our
app [ Your root ] | └─ views └─ user └─ security login.php
See how it follows the same structure as within the User's module
resources/views path? Well, that's what you should
do with any of the others in order to override them.
There is another way, and is by setting the
viewPath attribute of the module:
'modules' => [ 'user' => [ 'class' => Da\User\Module::class, 'viewPath' => '@app/views/user' ], ],
But it will force you to override ALL views from the module. The recommended way is throughout the
view component as previously mentioned.
© 2amigos 2013-2019