[英]one route 2 controllers - Laravel
我有一个路线,基于我需要调用适当的控制器的术语。 例如
Route::get('/{term}','Usercontroller')
Route::get('/{term}','brandcontroller')
我想实现这样的事情。 该术语包含的是名称(字符串),基于此字符串,它属于用户表或品牌表。 我怎样才能使用Service Container实现这样的目标。 在决定采用哪条路线之前,如果它属于USER类,则应该调用usercontroller,或者如果它属于品牌类,则应该采用brandcontroller路由。 任何帮助将不胜感激。 谢谢
创建中间件IsBrand,检查品牌是否存在?
Route::group(['middleware' => 'IsBrand'], function () {
Route::get('{term}', 'BrandController');
});
IsUser也是如此。
Route::group(['middleware' => 'IsUser'], function () {
Route::get('{term}', 'UserController');
});
使用php artisan make:middleware IsBrand
来创建中间件。
此命令将在您的app/Http/Middleware
目录中放置一个新的IsBrand
类。
<?php
namespace App\Http\Middleware;
use Closure;
class IsBrand
{
/**
* Handle an incoming request.
*
* @param \Illuminate\Http\Request $request
* @param \Closure $next
* @return mixed
*/
public function handle($request, Closure $next)
{
if (App\Brand::where('brand_name', $term)->count())) {
return $next($request);
}
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.