问题标签 [route-model-binding]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
laravel - Laravel - 如何使用工作模型路由绑定实现共享控制器
首先,我使用的是 Laravel 6 和 PHP 7.2。
好吧。我有各种模型,我可以在它们上执行相同的操作。对于 DRY,我想到了以下想法:
在每个模型上,我将实现一个接口,并将用于处理操作的实际实现放在一个可调用的控制器中。
问题是我不知道如何将工作模型路由绑定到这样的实现。
为了让我的问题更容易理解,这里有一些代码片段:
- 楷模
- 控制器
我知道 Laravel 要做模型路由绑定,它确实需要知道要绑定什么DoActionOnActionable
模型
- 路线
问题是当我向这些路由发送请求时,我需要尽可能多的时间来响应我取消请求。所以,我认为出了点问题,它没有按我预期的那样工作。
我很感激任何能帮助我理解我的实施问题或更好地解决我的问题(DRY)的东西。
php - Laravel 路由模型绑定 - Laravel 5.7
我正在尝试使用 Laravel 的路由模型绑定。我在 RoutesServiceProvider 中设置了一个绑定来执行一些自定义解析逻辑。这适用于attributable
需要字符串名称和 id 来解析的参数。
但是,当我尝试键入强制转换方法以利用另一个模型的隐式绑定时,它会失败并出现错误
传递给 Illuminate\Routing\Router::{closure}() 的参数 2 必须是 App\Models\Staff 的实例,给定字符串,在 /var/www/html/ngj_form/vendor/laravel/framework/src/Illuminate 中调用/Routing/Route.php 在第 198 行
经过一些调试,我可以看到它{attrId}
在下面的方法定义中将路由的一部分作为第二个类型转换参数传递。ID 是一个字符串,因此它失败了。但是为什么它甚至试图传递这个参数呢?
路线如下所示:
类型转换控制器方法如下所示:
RouteServiceProvider 看起来像这样:
laravel - 具有多个通配符的路由模型绑定
如何明确表示路由模型绑定以仅获取相关类别?我的 web.php 文件如下:
子类别控制器:
和有问题的模型:
它部分工作正常。它加载了所有的蛞蝓,但问题是,假设我有三星子类别,它的父类别如下:
目录/手机/安卓/三星
每当我将 url 从 catalog/mobile-phones/ android /samsung 修改为 catalog/mobile-phones/ ios /samsung 时,它都可以工作,实际上它不应该。如何处理第二种情况?
PS:如果我打开子类别并更改类别段,它也适用。但是,显然,如果上层类别不存在,它将抛出 404。
routes - Route Model Binding 在 Laravel 中只返回一条记录
我的数据库中有一个表(帖子),其中包含(id、title、post)列。
我的表中有 3 条具有相同标题的记录,但它只返回第一条记录。
如何使用路由模型绑定返回所有具有相同标题的记录?
这是我的路线:
这是我的控制器类:
laravel - Laravel Slugable Route Model Binding 奇怪的行为
我的项目中有一个包含最新新闻文章的部分。为此,我有一个:
- 后模型
- 发布资源控制器和一个
- 资源发布路线。
后模型
PostController.php
网页.php
Index ( http://localhost/news
) 和 show ( http://localhost/news/{slug}
) 按预期工作!
现在我注意到的问题/错误:
当我将路线从posts更改为news时, show 方法不再有效。索引仍然有效。
从帖子到新闻的修改路线
http://localhost/news
有效,但http://localhost/news/{slug}
只向我展示了 PostModel 结构。
您知道问题所在吗?我该怎么做才能让它发挥作用?我使用 Laravel 8 和"cviebrock/eloquent-sluggable": "^8.0" package
蛞蝓。谢谢你的时间!
laravel - 如何在 Laravel 路由模型绑定中将加密的 ID 作为路由参数传递
我想将加密的 ID 作为路由参数传递。目前,我正在使用 Route 模型绑定,它返回 404
php - 如何将路由模型绑定查找数据从 id 更改为 slug
我有如下路线。
single()
at ArticleController
class的方法在这里:
现在我希望使用 Route Model Bindingarticles
根据 column 从表中查找这些数据slug
。但据我所知,Route Model Binding 根据 id 查找数据。那么如何将 Route Model Binding 查找数据从更改id
为slug
ONLY for ArticleController.php
(意味着其他 Controller 类可以使用 id 作为路由模型绑定)?