在Laravel中正确使用资源控制器

时间:2018-10-02 19:58:28

标签: laravel controller

我使用Laravel资源控制器,但是我不确定是否正确使用它。我从创建函数中的简单视图返回开始。在此视图中,我将一个名称写入文本字段,然后单击运行功能索引的提交按钮。 Defaul索引函数只是index(),由于发布请求,我将其更改为index(Request $ request)。但是我不认为索引是满足此需求的正确函数。这是完整的控制器。

public function index(Request $request)
{
    $username = $request->username;
    $user = User::where('name', $username)->select('id', 'name')->first();

    return view('invitation.username')->with('user', $user);
}

/**
 * Show the form for creating a new resource.
 *
 * @return \Illuminate\Http\Response
 */
public function create()
{
    return view('invitation.username');
}

/**
 * Store a newly created resource in storage.
 *
 * @param  \Illuminate\Http\Request  $request
 * @return \Illuminate\Http\Response
 */
public function store(Request $request)
{
    //
}

/**
 * Display the specified resource.
 *
 * @param  int  $id
 * @return \Illuminate\Http\Response
 */
public function show($id)
{
    //
}

/**
 * Show the form for editing the specified resource.
 *
 * @param  int  $id
 * @return \Illuminate\Http\Response
 */
public function edit($id)
{
    //
}

/**
 * Update the specified resource in storage.
 *
 * @param  \Illuminate\Http\Request  $request
 * @param  int  $id
 * @return \Illuminate\Http\Response
 */
public function update(Request $request, $id)
{
    //
}

将代码放在哪里?什么是我需要的正确功能?还是应该创建一个新功能?

1 个答案:

答案 0 :(得分:0)

对于这种模式,资源控制器可能不是最好的。

  • 索引-显示与控制器关联的模型的资源列表
  • 创建-显示用于创建模型的表单
  • 商店-接受来自“创建”表单的POST请求
  • 显示-显示单个资源
  • 编辑-显示用于编辑模型的表单
  • 更新-接受来自编辑表单的PUT请求以更新模型。

对于您的情况,我认为更合适的函数命名为:

public function search()
{
    return view('invitation.search');
}

然后显示这些结果:

public function results()
{
    return view('invitation.results')
        ->with('user', User::where('name', request()->input('username'))->first());
}

尽管可以对此进行进一步解释和推断,以增加对其他字段搜索的支持。