在Yii 1.1中,此代码适用于默认排序:
$dataProvider = new CActiveDataProvider('article',array(
'sort'=>array(
'defaultOrder'=>'id DESC',
),
));
Run Code Online (Sandbox Code Playgroud)
如何在Yii2中设置默认排序?
尝试下面的代码,但没有结果:
$dataProvider = new ActiveDataProvider([
'query' => $query,
'sort' => ['defaultOrder'=>'topic_order asc']
]);
Run Code Online (Sandbox Code Playgroud) 在yii2 gridview中,我有这个代码:
<?php echo GridView::widget([
'dataProvider' => $dataProvider,
'filterModel' => $searchModel,
'columns' => [
['class' => 'yii\grid\SerialColumn'],
[
'label' => 'bla',
'format' => 'url',
'value' => function ($data) {
return Html::url('site/index');
},
],
['class' => 'yii\grid\ActionColumn'],
],
]); ?>
Run Code Online (Sandbox Code Playgroud)
在网格视图中,使用url地址生成文本.
/学术界 - 新/高级/管理/网站/指数
网址工作正常,但如何为链接设置文字?
我想在Yii 2中获取项目的基本URL,但它似乎不起作用.根据您曾经能够做到的这个页面:
Yii::app()->getBaseUrl(true);
Run Code Online (Sandbox Code Playgroud)
在Yii 1中,似乎Yii 2 中的那个方法不再接受参数?
我试过没有真实,例如:
Yii::$app->getBaseUrl();
Run Code Online (Sandbox Code Playgroud)
但它只是空了.
你怎么能在Yii 2中做到这一点?
我正在尝试设置一个带有视图链接的按钮.但是yii\bootstrap\Button没有属性'url'.我宁愿使用yii应该只使用平坦的PHP.下面的代码将是理想的情况,但由于"url"选项不存在,是否有其他方法可以使用yii解决此问题?
echo Button::Widget([
'label' => 'label',
'options' => ['class' => 'btn btn-primary'],
'url' => Url::toRoute(['/controller/action']),
]);
Run Code Online (Sandbox Code Playgroud) 我想在Yii 2中实现以下SQL查询,但没有成功.
这应该给出唯一公司名称的总数:
SELECT count(DISTINCT(company_name)) FROM clients
Run Code Online (Sandbox Code Playgroud)
这应该显示company_name为client code和id(PK):
SELECT (DISTINCT(company_name,client_code)) FROM clients
Run Code Online (Sandbox Code Playgroud)
怎么做到这一点?
所以我正在摆弄Yii框架,在其中一个视图中,特别是创建表单,我试图给我的一个文本字段一个默认值.因此,当我进入我的创建页面时,值已经预先加载到表单上.
这是我目前的代码
<div class="row">
<?php echo $form->labelEx($model,'teamlead'); ?>
<?php echo $form->textField($model,'teamlead',array('size'=>50,'maxlength'=>50,'value'=>Yii::app()->user->getUsername(),'disabled'=>'disabled')); ?>
<?php echo $form->error($model,'teamlead'); ?>
</div>
Run Code Online (Sandbox Code Playgroud)
当我按下创建时,Yii给我一个错误,告诉我textField有空?除了设置值之外,我不知道还能做什么.我还想设置模型属性吗?
有没有办法ActiveRecord在Yii2中转换为数组?我知道我们可以做到这一点ActiveQuery,例如User::find()->asArray()->one();,但是Model当它已经被提取时我们可以转换为数组吗?我想在beforeSave()方法中执行该操作并将该数组存储在缓存中.
我在哪里可以在全球范围内设置语言(基于用户的cookie)?如何使它在整个应用程序(控制器,视图等)中工作?
在我找到的文档中 \Yii::$app->language = '';,我可以编写逻辑以正确的方式更改语言?
我正在尝试将响应数组转换为JSON格式.我已经尝试了在SO和其他网站上发布的所有答案,如web1,web2添加header('Content-Type: application/json'),然后echo json_encode($data,JSON_PRETTY_PRINT);
我总是以文本格式获得输出.有人可以帮助我解决这个问题.
助手班级:
public static function renderJSON($data) {
header('Content-Type: application/json');
echo json_encode($data,JSON_PRETTY_PRINT);
}
Run Code Online (Sandbox Code Playgroud)
我的控制器:
if ($model->login()) {
$user = User::findByUsernameOrEmail($request->post('username'));
$userArray = ArrayHelper::toArray($user);
Helpers::renderJSON($userArray);
Run Code Online (Sandbox Code Playgroud)
我试着打印userArray它看起来像这样:
Array
(
[name] => abc
[lastname] => xyz
[username] => test_test
)
Run Code Online (Sandbox Code Playgroud)
Json输出:(html/text)
{
"name": "abc",
"lastname": "xyz",
"username": "test_test"
}
Run Code Online (Sandbox Code Playgroud) 我正在使用Yii2作为我的应用程序.在params.php文件中我定义了一个数组:
return ['setValue'=>100];
Run Code Online (Sandbox Code Playgroud)
而且我include params.php在web.php:
<?php
$params = require(__DIR__ . '/params.php');
$config = [
'params' => $params,
];
return $config;
Run Code Online (Sandbox Code Playgroud)
我header.php在views文件夹中使用另一个文件.那么如何才能获得params数组header.php呢?我已经习惯了\Yii::$app->params;,但它没有用.