【问题标题】:i have this error when i send post request in postman当我在邮递员中发送邮寄请求时出现此错误
【发布时间】:2023-02-02 17:12:06
【问题描述】:

当我在邮递员中发送请求时出现错误

错误: ErrorException:文件中未定义的数组键“值”

代码:

public function search(Request $request) {
    $request = $request->all();

    $models = Course::query()
            ->where('title', 'like', '%' . $request['value'] . '%')
            ->where(['deleted' => '0'])
            ->get();
    return response()->json($models);
}

【问题讨论】:

  • 你查过$reques的内容了吗

标签: php laravel


【解决方案1】:

拿出你的$request 看看它,比如:

dd($request); 

您可能想要访问以下值:

$request->input('value');

而不是尝试将其作为数组访问。

【讨论】:

    【解决方案2】:

    您可以进行以下更改,以便它根据给定的动态工作

    public function search(Request $request)
        {
            $request = $request->all();
    
            $models = Course::query()
                ->when(array_key_exists('value', $request), function ($query) use ($request) {
                    $query->where('title', 'like', '%' . $request['value'] . '%');
                })
                ->where(['deleted' => '0'])
                ->get();
            return response()->json($models);
        }
    

    这里我们有 when 语句来检查这个键是否存在,如果不存在,它不会用那个特定的键执行,否则它会按预期工作。

    when(array_key_exists('value', $request), function ($query) use ($request) {
                $query->where('title', 'like', '%' . $request['value'] . '%');
            })
    

    你也可以修改什么时候语句,或者如果你想要更多的条件语句,你也可以将它们附加到上述语句中。

    【讨论】:

      【解决方案3】:

      删除一行并使用

      &request->value;
      

      像那样

      public function search(Request $request) {
      $models = Course::query()
              ->where('title', 'like', '%' . $request->value . '%')
              ->where(['deleted' => '0'])
              ->get();
      return response()->json($models);
      }
      

      【讨论】:

        猜你喜欢
        • 2019-07-31
        • 2022-01-23
        • 2022-07-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-11-16
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多