Я пытаюсь подключить laravel к социальной сети Facebook и GitHub, все работает хорошо, но после подключения к приложениям социальной сети я хочу вернуться к представлению auth.register с данными социального поставщика.
Я попытался отправить его в виде массива и JSON для представления, но все еще безрезультатно
Функция для получения данных от социального провайдера
public function redirectToProvider($social)
{
return Socialite::driver($social)->redirect();
// return dd($social);
// return $social;
}
Функция для обработки результата
public function handleProviderCallback($social)
{
//$social = 'github';
$gituser = Socialite::driver($social)->user();
$user = User::where('provider_id', $gituser->getEmail())->first();
if($user){
\Auth::login($user, true);
return redirect($this->redirectTo);
}else{
'nemail' => $gituser->getemail()]);
return view('auth.register')->with('data', ['name' => $gituser->getName(), 'email' => $gituser->getemail()]);
}
}
Auth.register view
<div class="col-md-6">
<input id="name" type="text" class="form-control @error('name') is-invalid @enderror" name="name" value="{{ old('name') }} {{$data->name}}" required autocomplete="name" autofocus>
@error('name')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
<div class="form-group row">
<label for="email" class="col-md-4 col-form-label text-md-right">{{ __('E-Mail Address') }}</label>
<div class="col-md-6">
<input id="email" type="email" class="form-control @error('email') is-invalid @enderror" name="email" value="{{ old('email') }} {{$data->email}} " required autocomplete="email">
@error('email')
<span class="invalid-feedback" role="alert">
<strong>{{ $message }}</strong>
</span>
@enderror
</div>
</div>
Я ожидаю, что в результате данные из предоставленной социальной сети будут вставлены в мое поле формы auth.register (имя, адрес электронной почты)
2 ответа
Вы заполняете переменную $data
array
и получаете доступ к ней как object
.
Измените {{$data->name}}
в вашем блейде на {{$data['name']}}
Или измените переменную $data
.
return view('auth.register')->with('data', (object)['name' => $gituser->getName(), 'email' => $gituser->getemail()]);
Ошибка в {{$data->name}}
, где data
не является object
, что логично, когда вы передаете данные как
return view('auth.register')->with('data', ['name' => $gituser->getName(), 'email' => $gituser->getemail()]);
Которая является array
нотацией.
Для доступа к массиву вам нужно []
: {{ data['name'] }}
Похожие вопросы
Новые вопросы
php
PHP — это открытый, мультипарадигмальный, динамически типизированный и интерпретируемый язык сценариев, изначально разработанный для веб-разработки на стороне сервера. Используйте этот тег для вопросов о программировании на языке PHP.