get property 'email' of non-object
Письма отправляются через очередь.
Mail::to([$user->email, env('MAIL_FROM_ADDRESS')])->queue(new \App\Mail\NewOrder($goods, $order, $user, $totalSum, $newUser, $password));
Очень странно, код работал, письма успешно отправлялись. Вроде ничего не менял. Но прилетает ошибка – о попытке получить свойство 'email' с не объекта. Не могу понять, что происходит.
Може кто сталкивался с такой проблемой? Куда смотреть?
может изменилась переменная юзер. она перестала быть объектом
а от какого хера она перестала быть объектом это нужно смотреть)
Да как-то странно - перестало быть объектом. Так понимаю, ругается на данные пользователя, только $user имеет свойство -> email. К примеру, если пользователь зарегистрирован, получаю: $user = Auth::user(); Если нет, то регистрация из данных заказа: $password = Str::random(8); $user = \App\Models\User::create([ 'name' => $request->name, 'email' => $request->email, 'password' => Hash::make($password) ]); По любому $user - объект.
А ты уверен что твой user::create срабатывает?
Нувобщем то, полное тело... public function create(Request $request) { $newUser = false; $password = ''; if(Auth::check()) { $user = Auth::user(); }elseif(\App\Models\User::where('email', '=', $request->email)->exists()){ $user = \App\Models\User::where('email', '=', $request->email)->first(); Auth::login($user); }else{ $password = Str::random(8); $user = \App\Models\User::create([ 'name' => $request->name, 'email' => $request->email, 'password' => Hash::make($password) ]); $user->assignRole('Customer'); Auth::login($user); $newUser = true; } $goods = \Cart::session(Cookie::get('vesuvius'))->getContent(); $totalSum = \Cart::session(Cookie::get('vesuvius'))->getTotal(); $order = Order::create([ 'region_id' => $request->region, 'delivery_id' => $request->delivery, 'payment_id' => $request->payment, 'user_id' => $user->id, 'name' => $request->name, 'phone' => $request->phone, 'address' => $request->address, 'comment' => $request->message, 'total' => (float)$totalSum, ]); foreach ($goods as $good){ Purchase::create([ 'order_id' => $order->id, 'product_id' => $good['attributes']['product_id'], 'name' => $good['name'], 'qty' => $good['quantity'], 'price'=> $good['price'], 'link' => $good['attributes']['url'], 'img' => $good['attributes']['img'], ]); } \Cart::session(Cookie::get('vesuvius'))->clear(); //dd($user->email); Mail::to([$user->email, env('MAIL_FROM_ADDRESS')])->queue(new \App\Mail\NewOrder($goods, $order, $user->toArray(), $totalSum, $newUser, $password)); return view('front.order.success', compact('goods', 'order', 'user', 'totalSum', 'newUser', 'password')); }
Обсуждают сегодня