Как отобразить данные из контроллера в блейд-вид и как выполнять маршрутизации из удаленного API? Laravel

#laravel #routes #controller #laravel-blade #remoteapi

#ларавель #маршруты #контроллер #laravel-blade #remoteapi

Вопрос:

WelcomeController

 class WelcomeController extends Controller
{

    public function ajaxRequestPost(Request $request){
        
        $request->session()->put('data', $request->all());

        return redirect('dashboard');
        
    }
    public function readSession(Request $request){

        
        $email = $request->session()->get('data');

        return $email;
       
    }

    
}
 

Маршруты (Web.php )

 
    return view('welcome');

});
Route::post('/', [AppHttpControllersWelcomeController::class, 'ajaxRequestPost'])->name('ajaxRequest.post');

Route::get('/dashboard/read', [AppHttpControllersWelcomeController::class]);
Route::post('/dashboard/read', [AppHttpControllersWelcomeController::class, 'readSession']);

Route::get('/dashboard', function () {

    $email = session()->has('data');

    if(!session()->has('data')){

        return redirect('/');
    }
    return view('dashboard', ['name'=> $email]);
});


Route::get('/logout', function () {
    session()->forget('data');
    return redirect('/');
});

 

Добро пожаловать.блейд для popuplogin из удаленного API

  <div class="hidden fixed top-0 right-0 px-6 py-4 sm:block">
                <!-- insert at the bottom part of body -->
                <script src="provided.js"></script> 

               <!-- add button to show login window -->
                <button id="btnShowLogin" type="button">Login</button>

                <form id="login" action="{{ url('/') }}" method="POST">
                    @csrf
                   
                </form>
               
                <script type='application/javascript'>
                  
                        //create new instance
                        var api = new API("Givenapikey");
                        //initialize api
                        api.init(function(){
                            //attach click event to the button
                            $("#btnShowLogin").click(function(){
                                //show login window
                                api.login({type:'student'},function(result){
                                   
                                    //check result
                                    if(result.error==0){
                                      
                                            $.ajax({
                                                headers: {
                                                    'X-CSRF-TOKEN': $('meta[name="csrftoken"]').attr('content')
                                                },
                                                url: "{{ route('ajaxRequest.post') }}",
                                                data: { username: result.details.usr_name} ,
                                                type: 'POST',
                                                async: false,
                                                success: function(result){

                                                    console.log(result);
                                                    document.getElementById('login').submit(); 
                                                }
                                            
                                            });
                                        
                                    }
                                    
                                });
                            });
                        });
                </script>
 

dahsboard.blade Мой целевой блейд для отображения моего имени пользователя и других сведений. Фрагмент кода из dashboard.blade.

 <span class="info">{{ $name }}</span>
 

Я не знаю, правильно ли я поступаю. Маршрутизация и контроллеры Я думаю, что я делаю это неправильно, особенно в маршрутизации. Вывод в dashboard.blade равен 1. Я не знаю почему.

Комментарии:

1. вы меняете $email здесь: $email = session()-> has(‘data’); на логическое значение, следовательно, оно равно 1

2. Я понимаю. Вы знаете, как правильно выполнять маршрутизацию?