2015-04-08 2 views
1

Я почтовый код, написанный в моей функции SIGNUP, и я получаю эту ошибкуLaravel 5 Попытка получить свойство необъектных электронной почты

ErrorException в 7c8c0426cb92aba181a5916d6b3e33a6 линии 2: Попытка получить свойство не- объект (Вид: /Users/aliayaz/Adcells-master/resources/views/emails/register-activate.blade.php)

 Mail::queueOn('Email-Activation', 'emails.register-activate', $data, function ($m) use ($user) { 
      $m->to($user->email, $user->first_name . ' ' . $user->last_name); 
      $m->subject('Welcome ' . $user->first_name); 
     }); 

и я зарегистрироваться реактивировать файл под ресурсами/просмотров/сообщений электронной почты

@extends('emails/layouts/default') 

@section('content') 
<p>Hello {{{ $user->first_name }}},</p> 

<p>Welcome to SiteNameHere! Please click on the following link to confirm your  SiteNameHere account:</p> 

<p><a href="{{{ $activationUrl }}}">{{{ $activationUrl }}}</a></p> 

<p>Best regards,</p> 

<p>@lang('general.site_name') Team</p> 
@stop 

этот код безотказно работает под Laravel 4.2 и я хотел обновить до 5.0

редактировать 1: Я не имею файл с именем 7c8c0426cb92aba181a5916d6b3e33a6

ответ

0

попробовать сливая Чтобы & Тема логики в одном утверждении.

$m->to($user->email, $user->first_name . ' ' . $user->last_name)->subject('Welcome ' . $user->first_name); 

Также вы можете вставить код в этом файле «7c8c0426cb92aba181a5916d6b3e33a6», чтобы увидеть, что в дальнейшем вызывает этот вопрос.

0

Убедитесь, что $ data ['user'] существует и также является объектом. Наверное, это происходит. Он пытается получить информацию от пользователя $, и его не существует.

+0

Я проверил, что массив содержит корректные данные .. и ввод этих данных в базу данных правильно .. но не in mail –

0
Mail::send('emails.register-activate', $data, function($message) { 
    $message->to(Input::get('email'), Input::get('username')) 
    ->subject('Verify your email address'); 
    }); 

, если он говорит, что вход не нашел пута ниже кода в верхней части страницы

use Illuminate\Support\Facades\Input; 
2

Это проблема конкретно с Mail::queue и всеми этими методами субпопуляции. Когда данные обрабатываются через систему очередей, он становится сериализованным, а затем неэтериализованным, когда он попадает в режим просмотра электронной почты.

Однако, если вы хотите изменить свой фрагмент выше на Mail::send, вы найдете его работу.

Один из подходов к решению этой проблемы заключается в принятии решения на площадке, что только массивы передаются в представления.

+0

yes Это была моя полезность моя ошибка изменилась сейчас, но ее не удалось решить ... теперь я могу отправить письмо .. но его не получаю ... ошибок нет .. –

+0

Я бы поднял это как отдельный вопрос, поскольку он частично не связан с этим. – Chris

0

Вам необходимо передать массив данных внутри представления. Вы не передали $ пользовательских данных внутри представления. Вы должны передать переменную $ user внутри представления. Только тогда вы можете получить доступ к $ пользователя значения

$data = array('user' => $user); 

    Mail::queueOn('Email-Activation', 'emails.register-activate', $data, function ($m) use ($user) { 
     $m->to($user->email, $user->first_name . ' ' . $user->last_name); 
     $m->subject('Welcome ' . $user->first_name); 
    }); 

затем распечатать вид следующего

<p>Hello {{{ $user['first_name'] }}},</p>