database - 如何在 Laravel 5.6 中使用 get Route 而不是 id 创建动态 url

标签 database laravel laravel-5.6 dynamic-url

我想创建动态 URL 路由而不是 id。我想在数据库中创建 url 列,我想使用该列在路由中创建 url。

Route::get('our-services/{service}', 'ServiceController@show');

这是我的路由代码,使用这个路由 url 看起来像这样

127.0.0.1:8000/1

但我想这样创作,

127.0.0.1:8000/name

这是我动态创建的链接代码

<a href="{{url('our-services/'.$service->url)}}" class="small white uppercase font-weight-6 underline">Read More</a>

它是从数据库列创建的动态 url。

最佳答案

您使用 route model binding自定义解析逻辑。在 RouteServiceProvider 启动方法中:

Route::bind('service', function ($value) {
    return App\Service::where('url', $value)->first() ?? abort(404);
});

关于database - 如何在 Laravel 5.6 中使用 get Route 而不是 id 创建动态 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51448026/

相关文章:

sql - 在 SQL 中存储排序顺序的最佳方法是什么?

laravel - 迁移后的模型/ Eloquent 错误

MySQL 支持波兰语字母 - É

oracle - 动态执行 dbms_utility.exec_ddl_statement

php - create() 函数不起作用且不输出错误 (Laravel)

php - mock 不从存储库(接口(interface))调用方法

php - 如何使用 logrotate 在 Laravel 中旋转日志?

php - Laravel 5.6 根据子项过滤父行

php - 选择数据并使用 where 和 where laravel 5.6

Android Room - 在查询中使用外键