我工作的一个laravel站点,每一个页面是由两个部分可用的模型。我想一个办法来抽象它会考虑多托管博客,格式{URL} .blog.com/{}类(我们可以假设的是,博客被进一步划分为类别,每个帖子必须属于恰好一个类别)。Laravel - 我怎么能有在每个控制器
目前,我有一个处理一个路由组{URL}和{类别}对我来说,这是很好的,这意味着我有我的路看起来像这样:
Route::get('/p/{post}', '[email protected]');
Route::get('/a/{author}', '[email protected]');
我的问题是,虽然,在我的控制每个单独的方法看起来是这样的:
function viewPost(Request $request, $url, $category, $post)
function viewAuthor(Request $request, $url, $category, $author)
这意味着我需要的一切传递到我看来,像这样:
return view('posts/viewSingle', [
'title' => $post->title,
'url' => $url,
'category' => $category,
'post' => $post
]);
我看到有很多重复的代码在这里,这将是巨大的,如果我能以某种方式来自我的每一个控制器方法去除网址和类别,仍然可以访问它(我想我可以在我的应用程序中使用Auth)。
的问题是,这是我在使用PHP框架的第一次尝试,我没有真正离开的最佳实践。根据我的阅读,我认为我需要两个服务提供商,但我不知道如何设置它们。
我想我的问题还在于,复杂的,我需要按顺序访问Request对象,以确定哪些网址什么类我需要从数据库中获取。
您可以创建一个通用的服务文件,然后从任何控制器 –