Php yii2中的url管理器restful api
1.如何创建此urlPhp yii2中的url管理器restful api,php,.htaccess,yii2,restful-url,Php,.htaccess,Yii2,Restful Url,1.如何创建此url http://localhost/travia-api/backend/web/v1/flight?id=4FR996IN2F829M 对此 http://localhost/travia-api/backend/web/v1/flight/4FR996IN2F829M 这是我的配置 'urlManager' => [ 'class' => 'yii\web\UrlManager', 'showScriptName' =&
http://localhost/travia-api/backend/web/v1/flight?id=4FR996IN2F829M
对此
http://localhost/travia-api/backend/web/v1/flight/4FR996IN2F829M
这是我的配置
'urlManager' => [
'class' => 'yii\web\UrlManager',
'showScriptName' => false,
'enablePrettyUrl' => true,
'rules' => [
'class' => 'yii\rest\UrlRule',
'controller' => 'flight',
'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:[\w\-]+>/<action:[\w\-]+>/<id:\d+>' => '<controller>/<action>/view',
'<controller:[\w\-]+>/<action:[\w\-]+>/<id:\d+>' => '<controller>/<action>',
'<controller:[\w\-]+>/<action:[\w\-]+>' => '<controller>/<action>',
'v1/<controller:[\w\-]+>/<action:[\w\-]+>/<id:\d+>' => 'v1/<controller>/<action>',
'v1/<controller:[\w\-]+>/<action:[\w\-]+>' => 'v1/<controller>/<action>',
'module/<module:[\w\-]+>/<controller:[\w\-]+>/<action:[\w\-]+>' => '<module>/<controller>/<action>',
],
2.当我想添加新模式时,我会将这些行添加到配置中
extraPatterns[
'GET search' => 'search'
]
在那之后,我犯了这样的错误
未知属性–yii\base\UnknownPropertyException
正在设置未知属性:yii\web\UrlRule::GET search
我做了很多,但我找不到有用的东西!
提前谢谢 根据这些规则:
'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:[\w\-]+>/<action:[\w\-]+>/<id:\d+>' => '<controller>/<action>/view',
'<controller:[\w\-]+>/<action:[\w\-]+>/<id:\d+>' => '<controller>/<action>',
'v1/<controller:[\w\-]+>/<action:[\w\-]+>/<id:\d+>' => 'v1/<controller>/<action>',
'v1/<controller:[\w\-]+>/<action:[\w\-]+>' => 'v1/<controller>/<action>',
因为您需要数字和文字:
http://localhost/travia-api/backend/web/v1/flight/4FR996IN2F829M
我不知道如何正确解决第二个问题,但请尝试以下方法:
extraPatterns[
'GET{id}' => 'search'
]
我看到了
编辑:
更改此规则:
'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:[\w\-]+>/<action:[\w\-]+>/<id:\d+>' => '<controller>/<action>/view',
'<controller:[\w\-]+>/<action:[\w\-]+>/<id:\d+>' => '<controller>/<action>',
'v1/<controller:[\w\-]+>/<action:[\w\-]+>/<id:\d+>' => 'v1/<controller>/<action>',
'v1/<controller:[\w\-]+>/<action:[\w\-]+>' => 'v1/<controller>/<action>',
'v1//'=>'v1/',
“v1/”=>“v1/”,
为此:
'v1/flight/<id:[\d+\w+]>' => 'v1/flight/actionName',
'v1/flight/<action:\w+' => 'v1/flight/<action>',
“v1/flight/”=>“v1/flight/actionName”,
“v1/飞行/将改变我的响应这不是解决方案!关于#1?是的,我不知道如何在Q2 u中帮助你。我用queryparameter解决了这个问题,比如:但是它不友好!