国产+高潮+在线,国产 av 仑乱内谢,www国产亚洲精品久久,51国产偷自视频区视频,成人午夜精品网站在线观看

request()->controller獲取的是個(gè)類名,能把控制器的名字返回么?

如果

問題描述

這里寫問題描述
如題。比如路由/admin/article/index,用request()->controller獲取的值希望是article。而不是App\Admin\Controller\ArticleController這種。
或者,是不是有其他框架內(nèi)已經(jīng)寫好的方法

1236 3 0
3個(gè)回答

yongdao35

估計(jì)沒有,否則這些控制器
App\Admin\Controller\ArticleController
App\Api\Controller\ArticleController
App\User\Controller\ArticleController
都叫article,就亂了
自己封裝個(gè)函數(shù)截取唄

  • 如果 2022-11-25

    謝謝,目前只能這么實(shí)現(xiàn)了

powerbowen

截圖
截圖

    /**
     * @param Request $request
     * @return \support\Response
     */
    public function index(Request $request): \support\Response
    {
        return json($this->getClassName());
    }

    /**
     * @return string
     */
    private function getClassName(): string
    {
        $classFile = debug_backtrace()[1]['class'];
        $map = explode('\\', $classFile);
        $class = is_array($map) ? array_pop($map) : $map;
        return str_replace('Controller', '', $class);
    }
wolfcode

$controllerClass = request()->controller;
strtolower(substr($controllerClass, strrpos($controllerClass, '\') + 1));

  • 如果 2022-11-25

    謝謝您。這個(gè)方法比較簡(jiǎn)單

  • 如果 2022-11-25

    這個(gè)好像沒有考慮到Controller后綴的情況。我已經(jīng)自己加了替換了。
    $controllerMap = explode('\',request()->controller);
    $controller = strtolower(str_replace(config('app.controller_suffix'),'',end($controllerMap)));

  • powerbowen 2022-11-25

    get

  • wolfcode 2022-11-25

    參考

    http://www.wtbis.cn/q/8083
    論壇里面有很多答案 可以提前搜索

年代過于久遠(yuǎn),無法發(fā)表回答
??