请问在YII2中where 中的 问题
具体如下:
需要查询 关键字不为空 而且不为null 而且不为 * 的条件。感觉和这个条件和 like 比较像,求解。谢谢
"keyword != '' and keyword is not null and keyword != '*'"
这个条件的查询怎么写
请问在YII2中where 中的 问题
具体如下:
需要查询 关键字不为空 而且不为null 而且不为 * 的条件。感觉和这个条件和 like 比较像,求解。谢谢
"keyword != '' and keyword is not null and keyword != '*'"
这个条件的查询怎么写
我项目用的是advanced
程序模板,我在frontend
>components
下建了一个a.php
文件,代码如下:
<?php
/**
* a.php
* ------
*/
namespace frontend\components;
use Yii;
class a extends \yii\base\Object {
public static function test(){
return Yii::t('app', 'test ok');
}
?>
然后,我在frontend
>messages
>zh-CN
下建了一个app.php
文件,代码如下:
<?php
/**
* app.php
* ------
*/
return [
'test ok' => '测试好了',
];
?>
我在frontend
模块下调用a::test()
,可以正常返回测试好了
,可我在backend
模块下调用就不能正常返回,只返回test ok
,
我的问题是:能不能在backend
模块下也能正常使用a::test()
,而不用在backend
>messages
>zh-CN
下再重复建一个app.php
文件,再把内容复制过来
你把app.php放在common\messages\zh-CN\app.php
不就好了?当然,要改下配置文件,我就是这么玩的
因做一个下拉列表,下拉列表的数据,来自表yii_event_type,如下:
1 马拉松
2 路跑
3 越野跑
4 自行车
5 铁人三项
生成的类文件名:EventType.php,这里我想在另一个类(ReleseEvent.php)里使用这些数据,在ReleseEvent.php写了如下函数:
/**
* @ 获取赛事类型
* @return mixed
*/
public function getEventType(){
$data = EventType::find()->all();
return $this->data;
}
在ReleseEventController里写了以下代码:
public function actionCreate()
{
$model = new ReleseEvent();
if ($model->load(Yii::$app->request->post()) && $model->save()) {
return $this->redirect(['view', 'id' => $model->id]);
} else {
$data = $model->getEventType();
return $this->render('create', [
'model' => $model,$data => $model->data,
]);
}
}
访问,弹出以下错误:
Unknown Property – yii\base\UnknownPropertyException
请指点迷津,很疑惑这一块,所有分数,奉上!
鉴于你提供的代码以及错误信息实在可怜,我就目前的代码说下你的问题吧:
这个函数,$data
取值后,干嘛了?我理解你这里应该是要return $data
而非return $this->data
。
第二个问题:
这里
这句里面,$data => $model->data
是要干嘛?如果是想要把$data
的值传到模板里面,你这里应该是:
ps:建议你好好把PHP的基础语法什么的看一下,这些错误出得都有点莫名其妙。
看详细的错误提示,会有具体到哪个文件哪一行哪个属性的信息提示的~
Yii上传图片,当修改时,fileInput 没有提交图片,数据库中的图片路径被覆盖为空,请问如何解决?我想实现的是当修改时,如果没有重新上传图片,则图片地址还是保留之前的路径地址,求解决。谢谢。
有两个方法
1.保存$model->pic
旧的值,有重新上传就用新的,否则用旧的值
2.没有重新上传,用unset($model->pic)
将model中的pic属性去掉(这个我没有亲测过,网友和我说yii框架就是这么处理的)。
‘pluginEvents’ => [
我想在高级版中后台修改添加用户。
代码如下:
index.php
<?php
use yii\helpers\Html;
use yii\bootstrap\ActiveForm;
?>
<div class="site">
<h1>新增用户</h1>
<?php $form = ActiveForm::begin([
'id' => 'add-user',
'options' => ['class' => 'form-horizontal'],
'fieldConfig' => [
'template' => "{label}\n<div class=\"col-lg-3\">{input}</div>\n<div class=\"col-lg-8\">{error}</div>",
'labelOptions' => ['class' => 'col-lg-1 control-label'],
],
]);?>
<?= $form->field($model,'username')?>
<!--报错-->
<?= $form->field($model, 'password')->passwordInput() ?>
<?= $form->field($model,'email')?>
<div class="form-group">
<div class="col-lg-offset-1 col-lg-11">
<?= Html::submitButton('Login', ['class' => 'btn btn-primary', 'name' => 'login-button']) ?>
</div>
</div>
<?php $form = ActiveForm::end()?>
</div>
user控制器
<?php
// 命名空间
namespace backend\controllers;
// yii主体
use yii;
// 控制器
use yii\web\Controller;
// 模块
use common\models\User;
// 权限验证
use yii\filters\AccessControl;
class UserController extends Controller
{
/**
* @权限验证
*/
public function behaviors()
{
return [
// 验证规则
'access' => [
'class' => AccessControl::className(),
'rules' => [
[
'actions' => ['login', 'error'],
'allow' => true,
],
[
'actions' => ['logout', 'index','user'],
'allow' => true,
'roles' => ['@'],
],
],
],
];
}
public function actionIndex()
{
$model = new User();
return $this->render('index',['model'=>$model]);
}
}
模块是gii生成的,添加了属性名
public function attributeLabels()
{
return[
'username'=>'用户名',
'password'=>'密码',
'email'=>'邮箱',
];
}
现在的问题就是,密码框添加就直接报错
Invalid Call – yii\base\InvalidCallException
Getting write-only property: common\models\User::password
YII2菜鸟求解,坐等。还有就是注册提交的密码需要怎么处理
模板的User表中没有password字段,是在User模型中使用setter方法setPassword
,所以password是只写的。要怎么解决,你直接参照高级模板的注册方案吧,它用了SignupForm模型做数据中转。
问题解决没,我也遇到了这个问题,不知道怎么解决…
yii怎么设置文本框禁止输入,隐藏文本框,文本框多行输入
input中用readonly属性可实现禁止输入,用hidden属性实现隐藏。
第一张表UserName Password
第二张表UserName Name LinkMan PhoneNum
我在前台登录帐号之后,我要如何通过登录成功的 UserName 字段,把第二张表的信息获取出来
大神们给我一下完整的代码,谢谢
在1.1中可以直接调用,2的话怎么实现呢?
如果非要调用的话 直接调用就好了啊 和在其他地方用一样的
2里边不能直接调用?
直接通过模型就调用了啊.静态方法写上类名
生成了多个modules模块
在main.php文件要怎么设置
` ‘basePath’ => dirname(DIR),