这是我第一次使用Yii2,所以我对它的工作原理感到困惑。我的views/people/card.php
中有这个卡片页面。但是我只能通过web/people/card
访问该页面。为什么?
我可以使用控制器将card.php
中的按钮链接到_card.php
(无需更改url),但我如何将_card.php
中的按钮连接到_data.php
?
我的控制器
public function actionCard()
{
$dataProvider = new ActiveDataProvider([
'query' => People::find(),
]);
$model = '';
if (Yii::$app->request->post() && isset($_POST['card'])) {
if(isset($_POST['selection'])){
$model = People::find()->select('id, name, ic')->where(['id' => $_POST['selection']])->all();
$content = $this->renderPartial('_card',['model'=>$model]);
$selection = implode(',', $_POST['selection']);
}
return $this->render('_design', [
'dataProvider' => $dataProvider,
'model' => $model,
]);
}
首先,您只能通过web/people/card访问页面。因为这是yii管理的路线(这是一种可能的路线方式,你可以在本指南中看到更多
第二,如何将_card.php中的按钮链接到_data.php?(在另一个控制器中)为此,您也可以使用上面的路由规则。在这种情况下,您应该将控制器名称添加到路线(控制器/视图)中,例如:
$content = $this->renderPartial('data/_data',['model'=>$model]);
但是记住,使用来自不同控制器的视图不是一个好的实践。