我的表单需要额外的数据,我应该在哪里放置我的路由和控制器方法来获取它?
My form requires additional data, where should I put my routes and controller methods to get it?
我正在学习如何使用 laravel 创建 Web 应用程序,但我不知道为这个示例表单创建结构的正确方法:
我有一个名为 PostController 的简单控制器,方法如下:
index()
、create()
、store()
、show()
、edit()
、update()
、destroy()
通过 make:controller --resource
创建。
我在通过 Route::resource()
方法创建的 web.php 文件中有它的路由。
现在,我在 PostController 中的 create()
方法显示一个用于创建新 post 的表单,但此表单需要 select 来自列表。
我无法显示整个列表,因为它有数千个选项,我想创建使用 ajax 从我的数据库中获取可用选项的搜索字段。然后用户只需select一个选项就可以发送表格。
这当然只是示例,但在那种情况下,我应该将我的方法控制器和搜索选项的路由放在哪里?
我应该在我的 PostController (即 searchOption( $string ) )中创建其他方法还是应该是新控制器?
如果它应该是新的控制器,那么你对它的 folder/name 结构有什么建议吗?
我应该把路线放在哪里?还在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]);
}
我正在学习如何使用 laravel 创建 Web 应用程序,但我不知道为这个示例表单创建结构的正确方法:
我有一个名为 PostController 的简单控制器,方法如下:
index()
、create()
、store()
、show()
、edit()
、update()
、destroy()
通过 make:controller --resource
创建。
我在通过 Route::resource()
方法创建的 web.php 文件中有它的路由。
现在,我在 PostController 中的 create()
方法显示一个用于创建新 post 的表单,但此表单需要 select 来自列表。
我无法显示整个列表,因为它有数千个选项,我想创建使用 ajax 从我的数据库中获取可用选项的搜索字段。然后用户只需select一个选项就可以发送表格。
这当然只是示例,但在那种情况下,我应该将我的方法控制器和搜索选项的路由放在哪里? 我应该在我的 PostController (即 searchOption( $string ) )中创建其他方法还是应该是新控制器? 如果它应该是新的控制器,那么你对它的 folder/name 结构有什么建议吗? 我应该把路线放在哪里?还在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]);
}