2015-02-12 5 views
0

Я новичок в Laravel и пытаюсь отправить электронное письмо после того, как пользователь зарегистрировался через форму. Я использую файлы аутентификации по умолчанию, поставляемые с Laravel, и модифицировал их. Например: я хочу только потребовать уникальную электронную почту для регистрации, затем отправить учетные данные и автоматически войти в систему нового пользователя.Локализация в письмах с Laravel 5

Возможно, в будущем я также работаю с языковыми файлами, где храню свои переводы.

Я настроил AuthController также принять MailerContract и в функции Послерегистрационного Я отправку электронной почты, как показано ниже:

/** 
    * Handle a registration request for the application. 
    * 
    * @param \Illuminate\Foundation\Http\FormRequest $request 
    * @return \Illuminate\Http\Response 
    */ 
    public function postRegister(Request $request) 
    { 
     $validator = $this->registrar->validator($request->all()); 

     if ($validator->fails()) 
     { 
      $this->throwValidationException(
       $request, $validator 
      ); 
     } 

     $input = $request->all(); 
     $input['password'] = str_random(8); 

     $this->auth->login($this->registrar->create($input)); 

     $this->mailer->send('emails.welcome', ['email' => $input['email'], 'password' => $input['password']], function($message) use($input) { 
      $message->to($input['email'])->subject(trans('emails.welcome:subject')); 
     }); 

     return redirect($this->redirectPath()); 
    } 

Я заметил, что моя тему-значение не переводится , Как использовать языковые файлы в контроллерах/чертах? Разве Laravel не выбирает это из представления?

Как спросил, часть языкового файла: (/resources/lang/nl/emails.php)

<?php 

return [ 
    'welcome:subject' => 'Uw inloggegevens' // Dutch for Your login credentials 
]; 
+0

Можете ли вы показать хотя бы часть файла Languaje? – fmgonzalez

+0

Добавлен еще один код. Надеюсь, поможет. – Ben

+0

Я не уверен, потому что я никогда не пробовал это раньше, и я не могу сделать это сейчас, но можете ли вы попытаться заменить 'welcome: subject' на 'welcome.subject '? – fmgonzalez

ответ

0

Вы должны использовать многомерные массивы в /resources/lang/nl/emails.php:

return [ 
    'welcome' => [ 
     'subject' => 'Uw inloggegevens', 
    ], 
]; 

И использовать нотную обозначение вместо двоеточия в транс-функции:

$message->to($input['email'])->subject(trans('emails.welcome.subject')); 
+0

Обозначение двоеточия действительно работает. Возможно, это не лучшее соглашение. Спасибо за ваш ответ. Задав другой вопрос, связанный с локализацией, я нашел ответ на этот вопрос. – Ben

0

Я столкнулся с другой проблемой: локализации и задал вопрос об этом на SO. Похоже, что использование промежуточного программного обеспечения является решением этого, потому что это устанавливает правильный язык в приложении.

С благодаря @lukasgeiter, ответ можно найти здесь: Localization with Laravel5 without domain.com/language/

Смежные вопросы