一路2控制器 - Laravel

时间:2017-06-16 13:25:08

标签: php laravel

我有一条路线,基于我需要调用适当控制器的术语。 例如

Route::get('/{term}','Usercontroller')
Route::get('/{term}','brandcontroller')

我想实现这样的事情。该术语包含的是名称(字符串),基于此字符串,它属于用户表或品牌表。我怎样才能使用Service Container实现这样的目标。在决定采用哪条路线之前,如果它属于USER类,则应该调用usercontroller,或者如果它属于品牌类,则应该采用brandcontroller路由。 任何帮助将不胜感激。 感谢

1 个答案:

答案 0 :(得分:3)

创建中间件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创建中间件。

此命令将在IsBrand目录中放置一个新的app/Http/Middleware类。

<?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);
        }
    }

}