根据该线程Yii2 - left join on multiple condition 我在Mfwpcontroller中创建sql函数,如下所示:
use Yii;
use app\models\Mfwp;
use app\models\User;
use app\models\MfwpSearch;
use yii\web\Controller;
use yii\web\NotFoundHttpException;
use yii\filters\VerbFilter;
use yii\web\Response;
public function actionLists($id)
{
$posts = Mfwp::find()
->joinWith(['user' => function (ActiveQuery $query) {
return $query
->andOnCondition(['=', 'user.id', 'mfwp.id_mfwp'])
->andWhere(['=', 'mfwp.id', $id]);
}])
->asArray()
->all();
Yii::$app->response->format = 'json';
return $posts;
}
这是我在MFWP中的模型
public function getMfwp()
{
return $this->hasOne(User::className(), ['id' => 'id_mfwp']);
}
/**
* @return \yii\db\ActiveQuery
*/
public function getSmWps()
{
return $this->hasMany(SmWp::className(), ['id_sm_wp' => 'id']);
}
当我尝试通过访问http://bla-bla.oke/mfwp/lists?id=1执行时,显示错误
无效的参数– yii \ base \ InvalidArgumentException app \ models \ Mfwp没有名为“用户”的关系。 ↵ 原因:未知方法– yii \ base \ UnknownMethodException 调用未知方法:app \ models \ Mfwp :: getuser()
这是我的数据库结构https://imge.to/i/vE2nWC
所以我的代码有什么问题..谢谢您的建议