Php 是否可以创建基于ID预加载对象的urlManager规则?
使用Yii 2.0.4,我尝试使用urlManager规则根据URL中的给定ID预加载对象 config/web.php 注意:上述代码段不起作用。这就是我想要的东西Php 是否可以创建基于ID预加载对象的urlManager规则?,php,yii2,Php,Yii2,使用Yii 2.0.4,我尝试使用urlManager规则根据URL中的给定ID预加载对象 config/web.php 注意:上述代码段不起作用。这就是我想要的东西 可能吗?有什么办法可以做到这一点吗?如果你仔细看看:实际上什么都没有改变。您仍然调用Client::findOne($id)但是现在在一个意想不到的不合适的地方做这件事,如果你看下面的例子,它会说: 数组此规则提供的默认GET参数(name=>value)。 当使用此规则分析传入请求时,此属性中声明的值将被注入$\u GET 如果
可能吗?有什么办法可以做到这一点吗?如果你仔细看看:实际上什么都没有改变。您仍然调用
Client::findOne($id)
但是现在在一个意想不到的不合适的地方做这件事,如果你看下面的例子,它会说:
数组此规则提供的默认GET参数(name=>value)。
当使用此规则分析传入请求时,此属性中声明的值将被注入$\u GET
如果要为规则指定某些$\u GET
参数,则需要使用默认参数。例如
[
'pattern' => '/',
'route' => 'article/view',
'defaults' => ['id' => 1],
]
在这里,当您打开网站主页时,我们将id=1的文章指定为默认文章,例如,将作为
我可以建议您将属性clientModel
添加到控制器中,然后在beforeAction()
方法中检查其更新或查看操作是否已设置
$this->clientModel=Client::findOne($id)代码>
在你的行动中:
返回$this->render('view',['client'=>$this->clientModel])代码>如果你仔细看:实际上什么都没有改变。您仍然调用Client::findOne($id)
但是现在在一个意想不到的不合适的地方做这件事,如果你看下面的例子,它会说:
数组此规则提供的默认GET参数(name=>value)。
当使用此规则分析传入请求时,此属性中声明的值将被注入$\u GET
如果要为规则指定某些$\u GET
参数,则需要使用默认参数。例如
[
'pattern' => '/',
'route' => 'article/view',
'defaults' => ['id' => 1],
]
在这里,当您打开网站主页时,我们将id=1的文章指定为默认文章,例如,将作为
我可以建议您将属性clientModel
添加到控制器中,然后在beforeAction()
方法中检查其更新或查看操作是否已设置
$this->clientModel=Client::findOne($id)代码>
在你的行动中:
返回$this->render('view',['client'=>$this->clientModel])代码>我不这么认为。查看默认值
无法从规则中访问匹配的参数我不这么认为。查看默认值
无法从ruleThank访问匹配的参数。在发布问题之前,我阅读了“默认”参数文档,但我试图解释我想要实现的目标。尽管如此,我还是非常感谢您对预处理()的建议。我会试试,然后把解决方案贴在这里。谢谢。在发布问题之前,我阅读了“默认”参数文档,但我试图解释我想要实现的目标。尽管如此,我还是非常感谢您对预处理()的建议。我试试看,然后把解决方案贴在这里。
[
'pattern' => '/',
'route' => 'article/view',
'defaults' => ['id' => 1],
]