假设我有博客模型,它有一个标题,我如何将每个博客设置为此签名:
SELECT child_name, parent_id from children JoIN parenttable on Father_ID = parent_id
UNION
SELECT child_name, parent_id from children JoIN parenttable on Mother_ID = parent_id
是否有推荐的套餐可供使用?或者我应该自己写?从哪里开始?
答案 0 :(得分:2)
我建议你有一个像mywebsite / blogs / id / title这样的网址,并在你的routes.php中有一条接受两个参数的博客路径
Route::get('/blogs/{id}/{title}', 'BlogController@blog');
控制器中的
public function blog($title, $id)
{
/** in the function parameter it is not mandatory to catch both
* just take the one which is required
*/
Blog::where('id', '=', $id)->get();
}
当您想要在视图中动态创建链接,然后您可以通过
链接到您的博客<a href="/blogs/{{$array->id}}/<?php echo Str::slug($array->title);?>">{{$array->title}}</a>
编辑答案刚刚看到你正在使用laravel 4
答案 1 :(得分:0)
最简单的方法是使用斜杠(/
)作为blog-title
和blog-id
的分隔符。这样,您可以像下面这样定义您的路线:
Route::get('blogs/{title}/{id}', function($title, $id)
{
// your code here
});
这样称呼:https://yourdomain.com/blogs/yourFirstTitle/1
否则,你可以通过定义你的路线来爆炸你传递的破折号分隔参数:
Route::get('blogs/{titleAndId}', function($titleAndId)
{
$params = explode("-", $titleAndId);
$title = $params[0];
$id = $params[1];
// your code here
});
这样称呼:https://yourdomain.com/blogs/yourFirstTitle-1
。如您所见,这不是非常易读(代码和URI)。
我强烈推荐第一个版本。当然你也应该路由到控制器,但是对于路由,这些例子应该让你开始。