php-Silverstripe URL模式$url_handlers不起作用-名称空间似乎冲突
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php-Silverstripe URL模式$url_handlers不起作用-名称空间似乎冲突,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1329字,纯文字阅读大概需要2分钟。
内容图文
![php-Silverstripe URL模式$url_handlers不起作用-名称空间似乎冲突](/upload/InfoBanner/zyjiaocheng/685/8629b75e7fb94a5ca439702e62d23c95.jpg)
当我尝试使用以下$url_handlers为RESTful API创建路由时,似乎在两种模式之间产生了冲突.
class API extends Controller {
...
private static $url_handlers = array(
'GET object' => 'read',
'POST object' => 'create',
'PUT object/$ID' => 'update',
'PUT object/$ID/$OtherID' => 'assign',
'DELETE object/$ID' => 'delete',
'DELETE object/$ID/$OtherID' => 'unassign',
);
...
}
object / 1工作正常,但object / 1/1与更新操作匹配.
我要添加什么额外的细节才能使这些模式起作用?
解决方法:
我在7000和zippy和Flamerohr的帮助下找到了答案
URL模式应按照最具体到最不具体的顺序进行定义.
选项1:
正确地重新排列模式,并在变量之间添加一个静态段,以便增加的特异性避免了模式在例如
private static $url_handlers = array(
'GET object' => 'read',
'POST object' => 'create',
'PUT object/$ID/static-segment/$OtherID' => 'assign',
'PUT object/$ID' => 'update',
'DELETE object/$ID/static-segment/$OtherID' => 'unassign',
'DELETE object/$ID' => 'delete',
);
选项2:
重新正确排列图案,然后使用!定义必须提供URL参数以匹配模式的约定,例如
private static $url_handlers = array(
'GET object' => 'read',
'POST object' => 'create',
'PUT object/$ID/$OtherID!' => 'assign',
'PUT object/$ID' => 'update',
'DELETE object/$ID/$OtherID!' => 'unassign',
'DELETE object/$ID' => 'delete',
);
可以在Silverstripe的Routing文档中找到此约定:
https://docs.silverstripe.org/en/3.2/developer_guides/controllers/routing/#url-patterns
内容总结
以上是互联网集市为您收集整理的php-Silverstripe URL模式$url_handlers不起作用-名称空间似乎冲突全部内容,希望文章能够帮你解决php-Silverstripe URL模式$url_handlers不起作用-名称空间似乎冲突所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。