不知道你的需求是什么?
我猜测你需要使用 with()
而不是 joinWith()
,至于两个的区别你可以看这篇文章 Yii2 with 和 joinWith 的区别
首先帮你优化了一下排版,以后要注重排版。
然后我来回答你的这个问题吧,要想知道 with()
的用法,你先要了解 Yii 的 hasOne
和 hasMany
用法,相关知识你可以看文档的 Working with Relational Data。
而 with()
呢,其实是为了 延迟加载和预先加载,说白了 ->with('user', 'category')
就是去找 POST Model 里面的 getUser()
和 getCategory()
方法。
不要因为文档是英文就不看了,就算看代码你也可以看懂很多,这个页面至少你要看三遍,因为这个算是 Yii 的核心功能。
首先你要了解 Basic 和 Advanced 的区别?官方有说明。
Feature | Basic | Advanced |
---|---|---|
Project structure | ✓ | ✓ |
Site controller | ✓ | ✓ |
User login/logout | ✓ | ✓ |
Forms | ✓ | ✓ |
DB connection | ✓ | ✓ |
Console command | ✓ | ✓ |
Asset bundle | ✓ | ✓ |
Codeception tests | ✓ | ✓ |
Twitter Bootstrap | ✓ | ✓ |
Front- and back-end apps | ✓ | |
Ready to use User model | ✓ | |
User signup and password restore | ✓ |
两个版本我都用过,简单来讲就是:
两个版本只是目录结构有点区别,Advanced 版自带注册登录功能和 User 的表设计,默认区分前台和后台,很适合结构不是很复杂的项目,GetYii 目前用的就是 Advanced 版。
Basic 比较灵活,可制定性比较高,如果说这个项目 DevGroup-ru/dotplant2,就是根据 Basic 版上改的结构。Basic 也适合单纯的 RESTful 项目,目前我们公司有一个纯 RESTful API 项目用的就是 Basic 版。
所以你要清楚知道两个版本的区别是什么,然后知道你要什么,根据自己需求来选什么。如果有时间的话,你可以两个版本都用一下。
所以我不认同电商平台就要用 Advanced,而博客就要用 Basic,如果你博客需要后台的话,其实用 Advanced 更加合适,也更方便。
如果你使用的是 Yii2 的话你根本不用处理这些,你可以试一下在不登录的情况下给其他主题点赞的情况,会直接跳转到 登录页面。
代码看这里:beforeAction
@asdfdfdfdfd #5楼 使用 Yii::$app->request->getQueryParam('keyword')
获取 GET 值,填充表单。
@lzhui #15楼 好像是固定的,你试试。不行的话,你再看看这个教程 - 给博客加把小绿锁,Let’s Encrypt免费HTTPS SSL证书获取教程