谁一开始就是大神?

PHP 第86页

PHP

Yii2.0中where怎么查询多条件[2.0]

Candyqueen阅读(31)

请问在YII2中where 中的 问题
具体如下:
需要查询 关键字不为空 而且不为null 而且不为 * 的条件。感觉和这个条件和 like 比较像,求解。谢谢

"keyword != '' and keyword is not null and keyword != '*'"

这个条件的查询怎么写

Yii::t()使用疑问[2.0]

HaHbubble阅读(30)

我项目用的是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不就好了?当然,要改下配置文件,我就是这么玩的

两个类之间调用数据,希望能得到一个详细的讲解[2.0]

Hazelapple阅读(31)

因做一个下拉列表,下拉列表的数据,来自表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.1]

Lvyseagull阅读(31)

Yii上传图片,当修改时,fileInput 没有提交图片,数据库中的图片路径被覆盖为空,请问如何解决?我想实现的是当修改时,如果没有重新上传图片,则图片地址还是保留之前的路径地址,求解决。谢谢。

有两个方法
1.保存$model->pic旧的值,有重新上传就用新的,否则用旧的值
2.没有重新上传,用unset($model->pic)将model中的pic属性去掉(这个我没有亲测过,网友和我说yii框架就是这么处理的)。
‘pluginEvents’ => [

YII2在视图中怎么使用链接?[2.0]

lovecrab阅读(32)

在YII1.1中可以使用

<a href="<?php echo $this->createUrl('site/index') ?>">前台首页</a>

那在2中使用报错

Error
An internal server error occurred.
The above error occurred while the Web server was processing your request.

Please contact us if you think this is a server error. Thank you.

刚接触2

2中
或者

在注册中怎么写?密码框报错[2.0]

Niceseagull阅读(23)

我想在高级版中后台修改添加用户。
代码如下:
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模型做数据中转。
问题解决没,我也遇到了这个问题,不知道怎么解决…

YII2在视图中怎么调用model的方法[2.0]

GraceCherry阅读(28)

在1.1中可以直接调用,2的话怎么实现呢?

如果非要调用的话 直接调用就好了啊 和在其他地方用一样的
2里边不能直接调用?
直接通过模型就调用了啊.静态方法写上类名

登录

找回密码

注册