多表联查?? [ 2.0 版本 ]
这里输出的内容是订单表,这个的商品的名称是要在商品表中获取到的?请问yii2怎么才能查询出商品的名称??
订单表
商品表
最佳答案
-
这是我用yii2 AR模式写的一个联查,希望有用。
$request = yii::$app->request; $p_id = $request->get('p_id'); $model = new Company_jobs(); $job = $model -> find() -> join('inner join', 'recruit_company as rc', 'rc.c_id = recruit_jobs.c_id') -> select('*') -> where('recruit_jobs.p_id = '.$p_id) -> asArray() -> one(); return $this->render('job_info',['jobs'=>$job]);
共 2 条回复
其他 3 个回答
-
$this->hasOne(model::className(),['pid'=>'id']);
共 10 条回复@嗯嗯 模型这样写你帮我看一下对不对??
<?php
namespace app\models;use app_models_TradeScoreOrder;
class TradeScoreOrder extends _TradeScoreOrder {
static $model=false; static function model(){ $class= get_class(); if(self::$model==false){ self::$model = new $class(); } return self::$model; } static function _create_order_id(){ return date('YmdHis').rand(100000,999999); } public function getTradeScoreProduct(){ return $this->hasOne(TradeScoreProduct::ScoreController(),['pid'=>'id']); }
}
@嗯嗯 控制器的写法
/** * 我的订单 */ public function actionOrder(){ $products = TradeScoreOrder::find()->joinWith(['trade_score_product'])->orderBy('id desc');
// $products = TradeScoreOrder::find()->orderBy('id desc');
$pages = new Pagination(['totalCount'=> $products -> count(),'pageSize' => '20']); $result = $products -> offset($pages -> offset) -> limit($pages->limit) -> all(); return $this->render('order',['result'=>$result,'pages'=>$pages]); }
@嗯嗯 Invalid Parameter – yii\base\InvalidParamException
app\models\TradeScoreOrder has no relation named "trade_score_product".
↵
Caused by: Unknown Method – yii\base\UnknownMethodExceptionCalling unknown method: app\models\TradeScoreOrder::gettrade_score_product()
in D:\wamp64\www\8080\vendor\yiisoft\yii2\base\Component.php at line 290
-
qq308375072 回答于 2017-08-29 17:45 举报
水一贴弄点分好提问= =
布莱克
注册时间:2017-07-20
最后登录:2018-05-07
在线时长:5小时37分
最后登录:2018-05-07
在线时长:5小时37分
- 粉丝1
- 金钱65
- 威望0
- 积分115