gpt4 book ai didi

php - 相同的路线但在 Laravel 5.1 路由中调用不同的 Controller

转载 作者:搜寻专家 更新时间:2023-10-31 20:36:24 26 4
gpt4 key购买 nike

我有两个 url,一个用于类别,一个用于品牌,例如:

http://localhost/project/womens-fashion #category
http://localhost/project/babette-clothes #brand

我只想走一条路线但调用不同的 Controller 。我已经写了路线,但它对我不起作用它的发送错误。见以下代码:

<?php
use \DB;
use Illuminate\Routing\UrlGenerator;
use Illuminate\Support\Facades\Redirect;

Route::get('/','HomeController@index');
Route::get('/product', array('uses' => 'ProductController@index'));
Route::get('/{slug}', function($slug) {
$result = DB::select('SELECT controller FROM url_setting where slug = ?', [$slug]);

if ($result[0]->pw_us_controller == 'CategoryController@view') {
return Redirect::action('CategoryController@view', array($slug));
} elseif ($result[0]->pw_us_controller == 'CategoryController@view') {
return Redirect::action('BrandController@index', array($slug));
} else {
return Redirect::action('HomeController@index');
}
});

错误:InvalidArgumentException in UrlGenerator.php 第 576 行:Action App\Http\Controllers\CategoryController@view 未定义。

我很困惑,哪里出了问题?任何想法!!!

最佳答案

您应该为 CategoryController@view 定义路由。

尝试在你的路由文件中添加这样的东西:

Route::get('/category', 'CategoryController@view');

---编辑---

我只是更好地阅读了这个问题。我想你会得到这样的东西:

/womens-fashion --> CategoryController@view
/babette-clothes --> BrandController@view

并且您的数据库中存储了 slug。

所以,也许重定向 不是您的解决方案。

我会做这样的事情:

Route::get('/{slug}', 'SlugController@view');

Controller SlugController:

class SlugController extends Controller
{

public function view(Request $request, $slug)
{
$result = DB::select('SELECT controller FROM url_setting where slug = ?', [$slug]);

if ($result[0]->pw_us_controller == 'CategoryController@view') {
return self::category($request, $slug);
} else if ($result[0]->pw_us_controller == 'BrandController@view') {
return self::brand($request, $slug);
} else {
// redirect to home
}
}

private function category($request, $slug)
{
// Category controller function
// ....
}

private function brand($request, $slug)
{
// Brand controller function
// ....
}

}

关于php - 相同的路线但在 Laravel 5.1 路由中调用不同的 Controller ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33996818/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com