2017-10-31 21 views
0

私は入力フィールドを持つフォームを持っていますが、入力値を送信してセッションを使用して後で確認するセッションを使用したいと考えています コードしてくださいlaravelセッションを使用して入力フィールドを保存し、別のページに渡す

フォーム:

<form id="booking-form"> 
<input class="indexinput" type="text" id="country" name="country" 
placeholder="Country"> 
<input class="indexinput" type="text" id="state" name="state" 
placeholder="State"> 
<input class="indexinput" type="text" id="city" name="city" placeholder="city"> 
</form> 

<button class="button getbids" >GET BIDS</button> 


<script type="text/javascript"> 
    $(document).on('click', '.getbids', function() { 
    var loggedIn = {{ auth()->check() ? 'true' : 'false' }}; 
    if (loggedIn) 
    window.location.replace('customer/dashboard'); 
    if(!loggedIn) 
    $('#loginModal').modal('show'); 
    }); 
    </script> 

ルート

Route::group(['middleware'=>['rolecustomer']], function() { 

    Route::get('/customer/dashboard', '[email protected]')->name('customer.dashboard'); 
}); 

コントローラ:

public function index() 
    { 
    return view('index.customer.customerdashboard'); 
    } 
+0

がより明確に正確にあなたが何をしたいのかを説明してくださいとして

<form id="booking-form" method="POST" action="{{ route('customer.dashboard') }}"> 

変更

<script type="text/javascript"> $(document).on('click', '.getbids', function() { var loggedIn = {{ auth()->check() ? 'true' : 'false' }}; if (loggedIn) $('#booking-form').submit(); if(!loggedIn) $('#loginModal').modal('show'); }); </script> 

にあなたのjavascriptのコードでは、今すぐあなたのルートを作ります。 「別のページ」とはどういう意味ですか?あなたのフォームを提出した後のページ?ユーザーが後で自分で訪問できるページ?なぜそれをデータベースに保存したくないのですか? [docs(https://laravel.com/docs/5.5/session#storing-data)も参照してください。 – mrHooty

+0

多くのユーザーがこれを使用するので、セッションで保存したいだけです。セッションはより良く、明確です。私はフォームを持っていると思っています。そして、送信するときは、ルートの顧客/ダッシュボードのページに行きます。フォームthatsそれ –

答えて

0

あなたはこのように(コントローラに)セッションに値を入れることができます。

$request->session()->put('sampleid', $samplevalue); 

をそして、このようなブレードのページにそれらを取得:

@if(Session::has('sampleid')) 
     <div class="alert alert-success"> 
      {{Session::get('sampleid')}} 
     </div> 
    @endif 

そしてコントローラのようなth次のとおりです:

if($request->session()->has('sampleid')) 
{ 
$request->session()->get('collegeid'); 
} 
+0

どのコントローラですか?$ request-> session() - > put( 'sampleid'、$ samplevalue);を含む1つのコントローラーにすべてを入れなければなりません。 ? $リクエストはどうですか?私は機能する要求を追加する必要がありますか? –

+0

これはあなたのロジックに完全に依存します。 $ requestについて、それを関数のパラメータとして指定するか、ファサードを使ってセッションを設定することができます。 –

0

ユーザーが特定のリクエストでログインしていないと、リダイレクトしようとしているようです。 laravelには、これを処理するミドルウェアがあります。ドキュメントを見てください。それはセットアップするのが難しいことではありません。

このすべての認証ルールは、Laravelミドルウェアで処理できます。

ドキュメントミドルウェア:https://laravel.com/docs/5.5/middleware

0

あなたのコードを見て、私は、ユーザーが送信ボタンをクリックした後に認証されているかどうかを確認しようとしていることを理解しています。認証されている場合は、customer/dashboardにリダイレクトされます。彼が認証されていない場合は、ログインモーダルを表示しています。

問題は、javascriptを使用してユーザーをページにリダイレクトしていて、フォームを使用して送信されたデータを取得できないことです。だから私はsessioncustomer/dashboardでフォームデータを取得しようとしていると思います。あなたは以下のような単純な方法で達成することができます。

Route::any('/customer/dashboard', '[email protected]')->name('customer.dashboard'); 
+0

残念ながらクリアな解決策はありません –

関連する問題