1。怎么使用access-token登录
2。一般使用场景是什么
User方法里面有个longin_by_access_token的方法,你去看看,另外,一般在webserver里面使用,具体参照yii\filters\auth\HttpBearerAuth类
1。怎么使用access-token登录
2。一般使用场景是什么
User方法里面有个longin_by_access_token的方法,你去看看,另外,一般在webserver里面使用,具体参照yii\filters\auth\HttpBearerAuth类
basic版本建了modules,按照手册配置好config建好控制器如。
访问http://webroot/home/user 能查到所有数据
但是我想取一条数据http://webroot/home/user/1 为什么就是404
求解答?
下面为config/web.php里的路由规则
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
['class' => 'yii\rest\UrlRule', 'controller' => 'home/user'],
]
]
第一,你的controller继承的是不是yii\rest\ActiveController;这个类
第二,你要确定你是否有’home/user’这个action
第三,在你这个action里面实现任何你想要作的事情
用GET请求
http://localhost/home/user/lists/1 ?
调用Yii::$app->version时,报错:
exception ‘yii\base\UnknownPropertyException’ with message ‘Getting unknown property: yii\web\Application::version’ in D:\www\work\api\v1\vendor\yiisoft\yii2\base\Component.php:147
Stack trace:
#0 D:\www\work\api\v1\vendor\yiisoft\yii2\di\ServiceLocator.php(75): yii\base\Component->get(‘version’)
#1 D:\www\work\api\v1\mobile\modules\v1\controllers\SharesController.php(143): yii\di\ServiceLocator->get(‘version’)
#2 [internal function]: mobile\modules\v1\controllers\SharesController->actionRobotShares()
#3 D:\www\work\api\v1\vendor\yiisoft\yii2\base\InlineAction.php(57): call_user_func_array(Array, Array)
#4 D:\www\work\api\v1\common\component\Controller.php(154): yii\base\InlineAction->runWithParams(Array)
#5 D:\www\work\api\v1\common\component\Module.php(454): yii\base\Controller->runAction(‘robot_shares’, Array)
#6 D:\www\work\api\v1\vendor\yiisoft\yii2\web\Application.php(102): yii\base\Module->runAction(‘v1/shares/robot…’, Array)
#7 D:\www\work\api\v1\vendor\yiisoft\yii2\base\Application.php(380): yii\web\Application->handleRequest(Object(yii\web\Request))
#8 D:\www\work\api\v1\mobile\web\index.php(21): yii\base\Application->run()
#9 {main}
你初始框架的时候下面就有个获取版本的,你不会没看到
<?= DetailView::widget([
'model' => $model,
'attributes' => [
[
'attribute'=> 'user.nickname',
'label'=>'Creater',
'value'=>function($model){
return $model->'user.nickname'." ".$model->createdAt;
}
],
$model->’user.nickname’,这个正确写法应该是怎样的?现在报错!谢谢
你把$model传过去就行了
'value' => $model->user->nickname." ".$model->createdAt;
前提:$model这个类需要定义user的相关属性(采用hasOne定义)
参见:http://www.yiichina.com/doc/guide/2.0/db-active-record
什么啊,这是,闻所未闻。
源码上看起来是不支持匿名函数的,会报一个’The attribute configuration must be an array.’错误
在你的model 类里面定义一个public 变量
date验证还要配置什么吗?
model中:
[[‘create_time’], ‘date’,’format’=>’yyyy/MM/dd’],
view中:
<?= $form->field($model, ‘create_time’)->textInput() ?>
截图:
如图,create_time没有生成前端js验证。
你可以去看看这个验证器 yii\validators\DateValidator是不会生成前端验证的js,所以前端不能验证,因为这个类没有实现,clientValidateAttribute这个方法,只有实现了这个放的验证器才会生成前端验证
An Error occurred while handling another error:
exception 'yii\base\InvalidRouteException' with message 'Unable to resolve the request "site/error".' in G:\LocalDev\api.bto.com\systems\vendor\yiisoft\yii2\base\Module.php:532
Stack trace:
#0 G:\LocalDev\api.bto.com\systems\vendor\yiisoft\yii2\web\ErrorHandler.php(95): yii\base\Module->runAction('site/error')
#1 G:\LocalDev\api.bto.com\systems\vendor\yiisoft\yii2\base\ErrorHandler.php(111): yii\web\ErrorHandler->renderException(Object(yii\web\NotFoundHttpException))
#2 [internal function]: yii\base\ErrorHandler->handleException(Object(yii\web\NotFoundHttpException))
#3 {main}
Previous exception:
exception 'yii\web\NotFoundHttpException' with message 'Page not found.' in G:\LocalDev\api.bto.com\systems\vendor\yiisoft\yii2\web\Request.php:193
Stack trace:
#0 G:\LocalDev\api.bto.com\systems\vendor\yiisoft\yii2\web\Application.php(82): yii\web\Request->resolve()
#1 G:\LocalDev\api.bto.com\systems\vendor\yiisoft\yii2\base\Application.php(380): yii\web\Application->handleRequest(Object(yii\web\Request))
#2 G:\LocalDev\api.bto.com\wwwroot\index.php(31): yii\base\Application->run()
#3 {main}
在网上搜索了一些资料
修改了common/config/bootstrap.php里的别名还是一样
Yii::setAlias('@common', dirname(__DIR__));
Yii::setAlias('@api', dirname(dirname(__DIR__)) . '/api');
Yii::setAlias('@console', dirname(dirname(__DIR__)) . '/console');
单从报错内容来说,好想是没有 api/controllers/sitecontroller
应该是 namespace 和 config/main.php 的问题,
如果你是直接把 backend 改名为 api(就是已经不存在backend文件夹)
你需要把api/controllers and api/models 下面所有的 namespace 从 backend/xxxx/xxxx 改为 api/xxx/xxx
同时需要把api/config/main.php 下面的 defaultController 从 backend/xxx/xxx 改为 api/xxx/xxx
最好的解决办法,尝试搜索,在api文件包内搜索 backend 这个keyword
祝好运。
有两个相同结构的数据表,怎么用union查询字句合并两个表的数据,在一个页面显示。
1.首先获得一个Query 对象,$query,然后生成一个需要union的Query对象$unionQuery,
$query->union = [
[
],
];
就可以了
具体参考,yii\db\QueryBuilder的buildUnion方法
上了负载均衡后出现assets下的资源在A服务器,但是访问到B服务器的问题,导致了js等无法找到,有什么办法解决吗?
一般的解决方案是,静态资源如css,js放cdn,图片等放oss
应该是需要配置你的负载均衡服务器,自动从A copy 到B吧
AppAsset 文件 配置路径不知道行不行。可以试试!
资源服务器
静态资源部能单独一台机么,cdn不行么
做负载均衡,资源文件一般单独放一个服务器,除了代码之外,相同的东西通通放一台机子
news
表有 news_id
tag
表有 tag_id
news_tag
是中间表 有个 news_id
和 tag_id
app\Models\News.php
有个getTag
方法如下怎么实现一对多关联查询
public function getTag()
{
//这里面怎么关联hasMany、、、、、、
}
求解答
在News(AR类)中要写个getter:
不能一次就查出结果,我的方法是:
现在 news_tag 模型中获取标签的id组合成一个数组
然后返回这个数组,再去标签中使用in获取到标签的信息,再返回出来。
你这里是三张表,而不是两张表
public function getSku(){
今天我研究了一下,我来分享下:
三张表:
三个表模型生成,其中在文章ArticleModel 中增加:
我要获取 文章id为 1 对应的所有标签;
结果如下:
<?= $form->field($tnModel,'tag_id[]')->checkboxList($tagRe)->label('文章标签') ?>
想问下checkbox默认选中的参数怎么写呢?例如下图的box选中
<?= $form->field($tnModel,’tag_id[]’)->checkboxList($tagRe, [‘value’=>’xxx’])->label(‘文章标签’) ?>
$tnModel->tag_id =1 直接这样