Php 如何使用find方法进行建模

Php 如何使用find方法进行建模,php,yii,yii2,Php,Yii,Yii2,我的控制器中有actionView($id)方法。并且有2个模型的帖子和用户,我想得到一个帖子(用户['name'])。我有一个主gridview,当点击该项目时,其url如下: 最后一个1是this$id参数。 现在我的方法是: public function actionView($id) { if(Yii::$app->user->isGuest) { return $this->redirect(['login']

我的控制器中有actionView($id)方法。并且有2个模型的帖子和用户,我想得到一个帖子(用户['name'])。我有一个主gridview,当点击该项目时,其url如下: 最后一个1是this$id参数。 现在我的方法是:

public function actionView($id)
   {
       if(Yii::$app->user->isGuest)
       {
           return $this->redirect(['login']);
       }
       else
       {
        $data = Posts::find($id)->joinWith('user');
        return $this->render('detail',['data'=>$data]);
       }
    }
但我有一个错误:

Setting unknown property: yii\widgets\DetailView::0

您必须在Posts模型中定义关系,如下所示:

 public function getUser()
{
    return $this->hasOne(User::className(), ['id' => 'user_id']);
}
之后,您可以使用以下命令获取用户:

Posts::find($id)->with('user')
您可以在文档中找到它:

您必须在Posts模型中定义关系,如下所示:

 public function getUser()
{
    return $this->hasOne(User::className(), ['id' => 'user_id']);
}
之后,您可以使用以下命令获取用户:

Posts::find($id)->with('user')
您可以在文档中找到它:

哪个控制器引用ActionView代码。请更新您的问题并添加您的Post模型代码..哪个控制器引用ActionView代码。请更新您的问题并添加您的发布模型代码..我正尝试这样做,但在获取未知属性时出错:yii\db\ActiveQuery::id@Rosti,您是否可以调试以查看发生错误的行?在控制器或视图中。以及数据是否已成功地从数据库查询,如果是这种情况,我们可以假定错误已在视图中。我正尝试这样做,但在获取未知属性:yii\DB\ActiveQuery:时出错:id@Rosti,您是否可以调试以查看发生错误的行?在控制器或视图中。以及数据是否已成功地从数据库查询,如果是这种情况,我们可以假定错误已在视图中。