【问题标题】:Laravel if statement for request object请求对象的 Laravel if 语句
【发布时间】:2016-10-19 17:55:36
【问题描述】:

目前正在构建 API。我正在处理除传入请求外的更新功能。所以:api.dev.com/?api_key=asdf&storeid=2 等

现在在后端我正在接受请求,然后我正在尝试编写一些逻辑来检查请求是否包含 storeid 然后更新该条目等。

但是当我写我的逻辑时,我会这样做

if(isset($request->storeid))
    $store->id = $request->storeid;

如果我的 put 请求中没有包含 storeid,那么我会得到:

Call to a member function parameter() on a non-object

因为它不存在。我是否以错误的方式编写此逻辑?

我想让用户自行更新他们想要的记录。因此,他们不必在请求中包含所有变量。只是那些需要更新的。

花旗

【问题讨论】:

    标签: laravel isset lumen


    【解决方案1】:

    “在非对象上调用成员函数 parameter()”错误不是因为您没有包含“storeid”输入,而是因为您没有调用 Store 对象的实例。

    也许如果你这样做:

    if(isset($request->storeid))
      $store = Store::findOrFail($request->storeid)
    

    【讨论】:

      【解决方案2】:

      改为这样做:

      if($request->has('storeid')) {
          ...
      

      【讨论】:

      • 非常糟糕的答案!您应该使用 has 方法来确定请求中是否存在值。如果值存在,has 方法返回 true !并且不是空字符串!!!
      • @МаксимСтепанов 嗯?我的回答确实使用了has 方法。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-02-02
      • 1970-01-01
      • 2022-07-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多