我的表单需要额外的数据,我应该把我的路由和控制器方法放在哪里才能得到它



我正在学习如何使用laravel创建web应用程序,但我不知道为这个示例表单创建结构的正确方法:

我有一个名为PostController的简单控制器,方法如下:index()create()store()show()edit()update()destroy()通过CCD_ 8创建。我在通过Route::resource()方法创建的web.php文件中有它的路由。

现在,我在PostController中的create()方法显示了一个用于创建新帖子的表单,但该表单需要从列表中选择一个选项。我无法显示整个列表,因为它有数千个选项。我想创建一个搜索字段,使用ajax从我的数据库中获取可用选项。然后用户只需选择一个选项,就可以发送表单。

当然,这只是一个例子,但在这种情况下,我应该把我的方法控制器和搜索选项的路线放在哪里?我应该在PostController(即searchOption($string((中装入额外的方法,还是应该是新的控制器?如果它应该是新的控制器,那么你对它的文件夹/名称结构有什么建议吗?我应该把我的路线放在哪里?仍在web.php中?还是api.php?再说一遍,我应该如何命名这条路线?

如果你有另一个实体,你可以制作另一个控制器。假设您想要在Post的创建视图中过滤City

// Controllers/Api/CityController.php
public function index(Request $request)
{
$query = City::query();
if ($request->has('search')) {
$query->where('name', 'LIKE', $request->input('search') . '%');
}      
$cities = $query->paginate();
return response()->json(['cities' => $cities]);
}

最新更新