问题标签 [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.

0 投票
1 回答
125 浏览

laravel - Laravel - 如何使用工作模型路由绑定实现共享控制器

首先,我使用的是 Laravel 6 和 PHP 7.2。

好吧。我有各种模型,我可以在它们上执行相同的操作。对于 DRY,我想到了以下想法:

在每个模型上,我将实现一个接口,并将用于处理操作的实际实现放在一个可调用的控制器中。

问题是我不知道如何将工作模型路由绑定到这样的实现。

为了让我的问题更容易理解,这里有一些代码片段:

  • 楷模
  • 控制器

我知道 Laravel 要做模型路由绑定,它确实需要知道要绑定什么DoActionOnActionable模型

  • 路线

问题是当我向这些路由发送请求时,我需要尽可能多的时间来响应我取消请求。所以,我认为出了点问题,它没有按我预期的那样工作。

我很感激任何能帮助我理解我的实施问题或更好地解决我的问题(DRY)的东西。

0 投票
1 回答
265 浏览

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 看起来像这样:

0 投票
1 回答
68 浏览

laravel - 具有多个通配符的路由模型绑定

如何明确表示路由模型绑定以仅获取相关类别?我的 web.php 文件如下:

子类别控制器:

和有问题的模型:

它部分工作正常。它加载了所有的蛞蝓,但问题是,假设我有三星子类别,它的父类别如下:

目录/手机/安卓/三星

每当我将 url 从 catalog/mobile-phones/ android /samsung 修改为 catalog/mobile-phones/ ios /samsung 时,它都可以工作,实际上它不应该。如何处理第二种情况?

PS:如果我打开子类别并更改类别段,它也适用。但是,显然,如果上层类别不存在,它将抛出 404。

0 投票
0 回答
51 浏览

routes - Route Model Binding 在 Laravel 中只返回一条记录

我的数据库中有一个表(帖子),其中包含(id、title、post)列。
我的表中有 3 条具有相同标题的记录,但它只返回第一条记录。
如何使用路由模型绑定返回所有具有相同标题的记录?

这是我的路线:

这是我的控制器类:

0 投票
1 回答
14 浏览

laravel - Laravel Slugable Route Model Binding 奇怪的行为

我的项目中有一个包含最新新闻文章的部分。为此,我有一个:

  1. 后模型
  2. 发布资源控制器和一个
  3. 资源发布路线。

后模型

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蛞蝓。谢谢你的时间!

0 投票
2 回答
41 浏览

php - 路由模型绑定问题似乎不起作用

我正在使用 Laravel 8,并且在 Blade 制作了一张这样的表格:

结果完美显示:

在此处输入图像描述

但是现在我遇到了我指定为它们两个参数的编辑删除按钮的问题。$user->id

当我将鼠标悬停在按钮上时,我可以看到正确定义的用户 ID:

在此处输入图像描述

但是当涉及到使用路由模型绑定的编辑方法时,它没有找到用户:

但是,如果我不使用 Route Model Binding 而是这样说:

它正确显示了用户ID!

我不知道为什么路由模型绑定在这里不起作用,所以如果您知道出了什么问题或如何解决此问题,请告诉我...

0 投票
1 回答
23 浏览

laravel - 如何在 Laravel 路由模型绑定中将加密的 ID 作为路由参数传递

我想将加密的 ID 作为路由参数传递。目前,我正在使用 Route 模型绑定,它返回 404

0 投票
5 回答
36 浏览

php - 如何将路由模型绑定查找数据从 id 更改为 slug

我有如下路线。

single()at ArticleControllerclass的方法在这里:

现在我希望使用 Route Model Bindingarticles根据 column 从表中查找这些数据slug。但据我所知,Route Model Binding 根据 id 查找数据。那么如何将 Route Model Binding 查找数据从更改idslugONLY for ArticleController.php(意味着其他 Controller 类可以使用 id 作为路由模型绑定)?