Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/266.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 流明更改url_Php_Lumen - Fatal编程技术网

Php 流明更改url

Php 流明更改url,php,lumen,Php,Lumen,我在内腔框架内的一个建筑工地上工作。 我的问题是路线问题。它像现在一样工作,但我希望URL看起来更好 代码: routes.php $app->get('/work/{id}', 'WorkController@getWork'); WorkController.php public function getWork($id) { $project = DB::select("SELECT * FROM projects where id = $id"); return

我在内腔框架内的一个建筑工地上工作。 我的问题是路线问题。它像现在一样工作,但我希望URL看起来更好

代码:

routes.php

$app->get('/work/{id}', 'WorkController@getWork');
WorkController.php

public function getWork($id) {
    $project = DB::select("SELECT * FROM projects where id = $id");
    return view('work.index')->with('project', $project);
}
这是一个类似公文包的网站,我想通过它的id获得一个特定的db帖子。
但我希望URL看起来更好。现在url看起来像:
www.site.com/work/2
其中2是id。例如,我如何使用db posts title字段作为url?

您可以在项目表的每一行中存储一个urltitle列。这将保存项目的字符串标识符。例如,可以将项目标题转换为小写,并用短划线替换每个空格。(您还必须处理特殊字符)

您的路线如下所示:

$app->get('/work/{urltitle}', 'WorkController@getWork');
public function getWork($urltitle) {
    $project = DB::select("SELECT * FROM projects where urltitle = $urltitle");
    return view('work.index')->with('project', $project);
}
您的查询如下所示:

$app->get('/work/{urltitle}', 'WorkController@getWork');
public function getWork($urltitle) {
    $project = DB::select("SELECT * FROM projects where urltitle = $urltitle");
    return view('work.index')->with('project', $project);
}
新url的一个例子是
www.mysite.com/work/my first project


希望能有所帮助。

谢谢!我知道,我只是觉得它足够干净。我想在不添加额外字段的情况下实现同样的效果。我想使用现有的字段,并以某种方式在php中解析它。这意味着您必须对每个请求进行某种额外的计算。例如,您可以使用mysql字符串函数动态执行我的建议,但这会降低查询速度。您还必须在用户每次加载页面时生成链接。存储uri段并对其进行查询要简单得多。除非有特殊原因你不能做。我认为额外的列是最干净的选择。