#php #laravel #laravel-5
#php #laravel #laravel-5
Вопрос:
Я пытаюсь отправить электронное письмо зарегистрированным пользователям, но когда я попытался запустить свой код, я получил эту ошибку на вкладке сеть
сообщение»: «htmlspecialchars () ожидает, что параметр 1 будет строкой, заданный объект (просмотр: C:xampphtdocslaravel Projectsbankiscbankresourcesviewsemailswelcome.blade.php )», «исключение»: «ErrorException»,
вот мой код в welcome.blade.php
<html lang="en-US">
<head>
<meta charset="text/html">
</head>
<body>
Name: {{$name}}
Password:
{{$password}}
</body>
</html>
вот мой RegisterController.php код
<?php
namespace AppHttpControllersAuth;
use AppUser;
use AppHttpControllersController;
use IlluminateHttpRequest;
use IlluminateSupportFacadesValidator;
use IlluminateFoundationAuthRegistersUsers;
use IlluminateAuthEventsRegistered;
use AppMailWelcomeMail;
use IlluminateSupportFacadesMail;
use IlluminateSupportFacadesAuth;
use IlluminateSupportFacadesInput;
class RegisterController extends Controller{
protected function genPass(){
$limit= 8;
$chars= 'abcdefghijklmnopqrstuvxwyz1234567890!@#$%^amp;*()_ =-[]{}|ABCDEFGHIJKLMNOPQRSTUVXWYZ';
$chararray= str_split($chars);
$gen=array();
for($i=0;$i<$limit;$i ){
$index=rand(0,strlen($chars)-1);
$gen[$i]= $chararray[$index];
}
return implode($gen);
}
protected function genAutKey(){
return bin2hex(random_bytes(8));
}
protected function testFunction() {
}
use RegistersUsers;
protected $redirectTo = '/home';
private $genPass;
private $genAutKey;
public function __construct(){
$this->genPass = $this->genPass();
$this->genAutKey = $this->genAutKey();
$this->middleware('admin');
}
protected function validator(array $data){
return Validator::make($data, [
'name' => 'required|max:255',
'email' => 'required|email|max:255|unique:users',
'phoneNumber' => 'required|numeric|unique:users',
]);
}
protected function create(array $data){
return User::create([
'name' => $data['name'],
'email' => $data['email'],
'Authkey' => $this->genAutKey,
'password' => bcrypt($this->genPass),
'phoneNumber' => $data['phoneNumber'],
'address' => $data['address'],
]);
}
public function register(Request $request) {
$validation = $this->validator($request->all());
if ($validation->fails()) {
return response()->json(['errors'=>$validation->errors()->toArray()]);
}
else{
$this->create($request->all());
// Mail::to($request->input('email'))->send(new WelcomeMail($sentt));
$mail = Mail::send(['html' => 'emails.welcome'], array(
'name' => $request->input('name'),
'email' => $request->input('email'),
'Authkey' => $this->genAutKey,
'password' => $this->genPass,
), function($message){
$message->from(Auth::user()->email, Auth::user()->name);
$message->to(Input::get('email'))->subject(Input::get('subject'));
});
return response()->json(['success'=>'Customer registerd successfully']);
}
}
}
Пожалуйста, что я делаю не так, я много пробовал и даже искал в Интернете, но не смог найти ничего полезного, что помогло бы мне
Комментарии:
1. пожалуйста, сбросьте
$this->genPass
и покажите нам, что он возвращает?2. Можете ли вы сделать
dd($this->genPass);
?3. $this-> genPass работает нормально, он возвращает сгенерированный пароль
4.
Log::info($name);
иLog::info($password);
перед вашей почтовой строкой просмотрите журналы,storage/logs/
чтобы увидеть, что содержит каждая переменная. Одним из них является объект вместо строки, которую ищет htmlspecialchars.