繁体   English   中英

一路2控制器 - Laravel

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM