Я строю систему приглашений пользователей с Laravel, она не работает - PullRequest
0 голосов
/ 04 июля 2018

Я создаю систему приглашений пользователей с Laravel, которая не работает. У меня есть ошибка, здесь электронное приглашение после отправки электронного письма пользователю, описательное изображение ниже <a href="{{ route('accept',$invite->token) }}">Click here</a> to activate!

my InviteController

public function process(Request $request)
{
    // validate the incoming request data

    do {
        //generate a random string using Laravel's str_random helper
        $token = str_random();
    } //check if the token already exists and if it does, try again
    while (Invite::where('token', $token)->first());

    //create a new invite record
    $invite = Invite::create([
        'email' => $request->get('email'),
        'token' => $token
    ]);

    // send the email
    Mail::to($request->get('email'))->send(new InviteCreated($invite));

    // redirect back where we came from
    return redirect()
        ->back();
}

public function accept($token)
{
    // Look up the invite
    if (!$invite = Invite::where('token', $token)->first()) {
        //if the invite doesn't exist do something more graceful than this
        abort(404);
    }

    // create the user with the details from the invite
    User::create(['email' => $invite->email]);

    // delete the invite so it can't be used again
    $invite->delete();

    // here you would probably log the user in and show them the dashboard, but we'll just prove it worked

    return 'Good job! Invite accepted!';
}

ошибка моего изображения enter image description here

1 Ответ

0 голосов
/ 04 июля 2018

Перед отправкой на почту сделайте dd of $ приглашение, чтобы убедиться, что у вас есть записи:

//create a new invite record
$invite = Invite::create([
    'email' => $request->get('email'),
    'token' => $token
]);
dd($invite);
// send the email
Mail::to($request->get('email'))->send(new InviteCreated($invite));

Затем на InviteCreated убедитесь, что вы храните $invite в общедоступном свойстве, чтобы оно было доступно в шаблоне blade-сервера:

class InviteCreated extends Mailable{

  public $invite;

  public function __construct($invite){
    $this->invite = $invite;
  }
 ...... if you use markdown then pass the `$invite`..

 public function build()
  {
    return $this
      ->markdown(your markdown mail')
      ->with([
         'invite'=>$this->invite
      ]);
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...