如何在laravel
中为两种不同的控制器功能方法使用相同的路径第一个控制器
public function index()
{
$comproducts = Comproduct::paginate(6);
$items = Item::orderBy('name')->get();
return view('computer', compact(['comproducts', 'items']));
}
第二个控制器
public function index()
{
return view('search.index');
}
我想在一条路线上使用这两种不同的控制器功能。
这是我的路线名称
Route::get('/computer', [
'uses' => 'ComputerProductsController@index',
'as' => 'computer.list'
]);
答案 0 :(得分:0)
laravel需要以某种方式确定您想要的确切方法。例如,您可以传递参数,该参数将标识要调用的方法。
public bool TableIsExists<T>(SQLiteConnection conn)
{
var q = "SELECT name FROM sqlite_master WHERE type='table' AND name=?";
var cmd = conn.CreateCommand(q, typeof(T).Name);
return cmd.ExecuteScalar<string>() != null;
}
答案 1 :(得分:0)
您不能。如果您想将搜索功能添加到第一个控制器的索引页面,您应该确定在控制器中显示哪个页面。
可能的示例控制器:
public function index(Illuminate\Http\Request $request)
{
// If the URL contains a 'search' parameter
// (eg. /computer?search=intel)
if ($request->has('search')) {
// Do some searching here and
// show the search results page
return view('search.index');
}
$comproducts = Comproduct::paginate(6);
$items = Item::orderBy('name')->get();
return view('computer', compact(['comproducts', 'items']));
}