我有两个tables
在我的搜索模型中,我写了public function frontendProvider(){}
为我的视图提供sql查询。
public function frontendProvider()
{
$query = new Query;
$query ->select('strategy_title')
->from('strategy')
->join( 'LEFT',
'risk_colors',
'risk_colors.id = risk_colors_id'
);
$provider = new ArrayDataProvider([
'allModels' => $query->createCommand()->queryAll(),
'sort' => [
'defaultOrder' => [
'risk_colors_id' => SORT_DESC,
],
'attributes' => [
'strategy_title',
'strategy_description',
'strategy_current_money',
'color_number',
'risk_colors_id',
],
],
]);
return $provider;
}
当我尝试重新加载时,我得到了这个error。我在做什么错了?
答案 0 :(得分:0)
如果要使用LEFT JOIN
,则应使用leftJoin()
方法:
$query->select('strategy_title')
->from('strategy')
->leftJoin(
'risk_colors',
'risk_colors.id = risk_colors_id'
);
答案 1 :(得分:0)
使用join()方法,您必须传递完整的JOIN类型,因此在这种情况下,您应该使用LEFT JOIN
。否则,您可以使用esplicit leftJoin()方法
.....
->join('LEFT JOIN',
'risk_colors',
'risk_colors.id = risk_colors_id');