为了账号安全,请及时绑定邮箱和手机立即绑定

此集合实例上不存在属性 [expiry_date]。

此集合实例上不存在属性 [expiry_date]。

PHP
守着星空守着你 2022-10-09 20:07:17
如果用户包在 laravel 中过期,我必须禁用用户的所有功能。就像我在一个月包自动过期后购买一个月包,用户看不到来自数据库的任何数据。我的过期日期自动插入到用户表中,然后我加入了我的通话记录表。(到期日期自动从包裹月份计算,例如:我选择一个包裹 1 个月,然后它在用户表中自动显示到期日期 1 个月)我的代码是  public function index(){   $calllog = DB::table('calllogs')->join('users', 'users.id', '=', 'calllogs.user_id')->find();    if($calllog->expiry_date > 'expiry_date'){        return $this->sendResponse($calllog->toArray(), 'Package Expired Sorry!');    }    else{        return $this->sendResponse($calllog->toArray(), 'Call Log retrieved successfully');       } }请帮忙
查看完整描述

3 回答

?
繁星coding

TA贡献1797条经验 获得超4个赞

$calllog是一个对象数组,您应该使用它first()来代替get()或使用它$calllog[0]->expiry_date,如果我正确理解您的要求,那么应该$calllog[0]->expiry_date试试这个:


 public function index(){

   $calllog = DB::table("calllogs")->join("users", "users.id", "=", "calllogs.user_id")->get();


   if($calllog[0]->expiry_date > 'expiry_date'){

     return $this->sendResponse($calllog->toArray(), 'Package Expired Sorry!');

   }

   else{

    return $this->sendResponse($calllog->toArray(), 'Call Log retrieved successfully');   

  }

}


查看完整回答
反对 回复 2022-10-09
?
汪汪一只猫

TA贡献1898条经验 获得超8个赞

您正在比较一整列,因为$calllog它是一个集合,而不是一个元素。您应该指定要比较表中的哪些行。您可以使用以下方法执行此操作:

$calllog = DB::table('calllogs')->join('users', 'users.id', '=', 'calllogs.user_id')->find($id);

例如。如果你想比较它们,你必须遍历它们。

Morover,您正在将它与不是日期的字符串“expiry_date”进行比较......


查看完整回答
反对 回复 2022-10-09
?
慕侠2389804

TA贡献1719条经验 获得超6个赞

get方法返回一个实例,Illuminate\Support\Collection该实例是用于处理数据数组的包装器

您正在尝试访问expiry_date一组对象

您可以通过更改此行来修复它

$calllog = DB::table('calllogs')->join('users', 'users.id', '=', 'calllogs.user_id')->get();

$calllog = DB::table('calllogs')->join('users', 'users.id', '=', 'calllogs.user_id')->first();



查看完整回答
反对 回复 2022-10-09
  • 3 回答
  • 0 关注
  • 101 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信