小编The*_*der的帖子

如何在Yii2 Active Record中使用JOIN作为关系模型?

我有2个名为Books and Reviews的表.Books表与Reviews有一对多的关系.

我想搜索书籍并按评论排序.

例如,如果有10本书可用且书籍已在评论中进行审核,那么我想通过使用WHERE子句查找所有书籍并计算评论,然后根据评论编号订购所有书籍.

我的SQL查询如下:

 Books::find()
   ->where([
     'and', 
     ['like', 'books.bookName', $bookName],
     ['like', 'books.status', 'Enabled'] 
    ])
  ->joinWith(['reviews' => function ($q){
        $q->select(['COUNT(*) as cnt']);
    }])
  ->orderBy(['cnt' => 'DESC'])
  ->all();
Run Code Online (Sandbox Code Playgroud)

它给了我以下错误消息:

SQLSTATE [42S22]:未找到列:1054'order子句'中的未知列'cnt'

我在这里错过了什么?

php mysql activerecord yii2

8
推荐指数
1
解决办法
4万
查看次数

如何使用wp_signon()使用Wordpress中用户表以外的数据登录?

我正在使用一个称为成员的单独表来保留注册信息。我正在使用wp_hash_password($ password)存储密码。

但是,当我想使用wp_signon()登录时,它将发送0作为响应。我检查了wp-includes / user.php来找到有关wp_signon()的详细信息,发现它使用user_login和user_password作为那里的表列名称。

在我的成员表中,我有member_username和member_password。

如何使用members表使其可行?

仅供参考,我正在使用wp_users表登录仪表板,但对于用户端,我正在使用wp_members存储所有成员信息。

谢谢

php mysql wordpress

5
推荐指数
1
解决办法
401
查看次数

在Active Record中使用带有多个where子句的find()

我想在3组中的Active Record查询之后划分(使用括号).第一组将从第一个"Where"子句到最后一个"orWhere".第二和第三将使用"andWhere".

请给我一些关于如何使用括号分隔所有3个部分的建议.

$query = Book::find()
->where('book_name LIKE :book_name', array(':book_name' => 
'%'.$book_name.'%'))
->orWhere('book_category LIKE :book_category', array(':book_category' =>'%'.$category.'%'))
->orWhere('finance_subcategory LIKE :finance', array(':finance' => '%'.$category.'%'))
->orWhere('insurance_subcategory LIKE :insurance', array(':insurance' => '%'.$category.'%'))
->andWhere('address LIKE :address', array(':address' => '%'.$address.'%'))
->andWhere('status =:status', array(':status' => 'Enabled'))
->orderBy('book_id');
Run Code Online (Sandbox Code Playgroud)

php mysql yii yii2 yii2-advanced-app

4
推荐指数
1
解决办法
3746
查看次数

如何在Yii 2验证错误消息中添加自定义链接?

我想在基于Yii 2模型的验证消息中添加自定义链接.

我目前正在使用以下代码块 -

public function rules()
{
  return [
    ['email', 'required'],
    ['email', 'email'],
    ['email', 'unique', 'targetClass' => '\common\models\User', 
                        'message' =>   'Email address has already been taken.'],
  ];
}
Run Code Online (Sandbox Code Playgroud)

我希望此消息显示如下 -

" 已经收到电子邮件地址.已经注册了?然后登录这里."

我怎样才能做到这一点?

php yii yii-components yii2 yii2-advanced-app

3
推荐指数
1
解决办法
1880
查看次数

如何在Yii 2中读取excel文件和显示数据?

我曾尝试使用PHPExcel库来读取excel文件并显示文件中的数据.但它不适合我.

我也尝试过使用yii2-phpexcel扩展以及其他一些方法,但没有任何方法可以帮助我.我希望我能得到专家人员的帮助.

我在CakePHP中使用PHPExcel从excel读取数据,但我不知道如何在Yii 2中使代码可行.如何在Yii2中加载PHPExcel?我正在使用XLSX.在CakePHP中,我可以使用 -

App::import('Vendor', 'Excel/reader'); 
$data = new Spreadsheet_Excel_Reader();
$data->setOutputEncoding('CP1251');
$data->read(WWW_ROOT . 'uploads/' . $_FILES["filename"]["name"]);
$cells = $data->sheets[0]['cells'];
Run Code Online (Sandbox Code Playgroud)

提前致谢.

php phpexcel yii-components yii-extensions yii2

2
推荐指数
1
解决办法
1万
查看次数