2016-11-08 3 views
1

以下のようなシナリオがあります。ユーザは、その期間のデータベースから連絡先を選択する2つの期間を選択する。別のページ/ビューに変数を渡すにはどうすればよいですか?

次に、次のページでは、渡された連絡先を表示し、ユーザーがメッセージを入力できるテキストエリアのフィールドも必要です。

問題は、次のページがロードされるまでに$contacts変数が空になることです。では、変数を2ページに渡すにはどうすればよいですか?以下

そしてSelect Time Period

<form method="POST" action="selectContacts"> 
    {{ csrf_field() }} 
    <div class="row"> 
     <div class="col-lg-3 col-sm-3 col-xs-6"> 
      <div class="form-group{{ $errors->has('date') ? ' has-error' : '' }}"> 
       <label for="Event Date">Start Date</label> 
       <input type ='hidden' name='email' value='{{$email}}'> 
       <input type ='hidden' name='ip' value='{{$ip}}'> 
       <input name="start" type="text" class="form-control" id='fromperiod' placeholder="Date" required 
       @if ($errors->has('date')) 
        <span class="help-block"> 
         <strong>{{ $errors->first('date') }}</strong> 
        </span> 
       @endif 
      </div> 
     </div> 
    </div> 
    <div class="row"> 
     <div class="col-lg-3 col-sm-3 col-xs-6"> 
      <div class="form-group{{ $errors->has('date') ? ' has-error' : '' }}"> 
       <label for="Event Date">End Date</label> 
       <input name="stop" type="text" class="form-control" id='toperiod' placeholder="Date" required 
       @if ($errors->has('date')) 
        <span class="help-block"> 
         <strong>{{ $errors->first('date') }}</strong> 
        </span> 
       @endif 
      </div> 
     </div> 
    </div> 
    <div class="row"> 
     <div class="col-lg-12 col-sm-12 col-xs-12"> 
      <input type="submit" class="btn btn-primary pull-right" value="Select"> 
      <a href="sendsms" class="btn btn-default pull-left"> 
       <i class="fa fa-arrow-left" aria-hidden="true"></i> Back 
      </a> 
     </div> 
    </div> 
</form> 

のコードselectContactsルートを処理するコントローラです。

public function SelectContacts(Request $request) 
{ 
    $Startdate=$request->start; 
    $Stopdate=$request->stop; 
    validator = Validator::make($request->all(), [ 
     'start' => 'required|min:10', 
     'stop' => 'required|min:10' 
    ]); 

    if ($validator->fails()) { 
     return redirect('/sendsms') 
       ->withErrors($validator) 
       ->withInput(); 
    } 
    $sdate=date_create("$Startdate"); 
    $start = date_format($sdate,"Y/m/d H:i:s"); 

    $date=date_create("$Stopdate"); 
    $stop = date_format($date,"Y/m/d H:i:s"); 

    $contacts = DB::table('Payment') 
        ->whereBetween('time_paid', [$start, $stop]) 
        ->paginate(5); 

    //next page 
    return view('BulkSMS.send', 'contacts'=>$contacts]); 
} 

そして最後にNADテキスト領域コンタクトの表示処理ビュー:

<form class="form-horizontal" role="form" method="post" action="/fun/sendbulk"> 
    {{ csrf_field() }} 
    <div class="form-group"> 
     <label for="message" class="col-sm-1 control-label">Message</label> 
     <div class="col-sm-6"> 
      <textarea class="form-control" rows="4" name="message" required="Please Type Your Message Here" placeholder="Message"></textarea> 
     </div> 
     <input type ='hidden' name='email' value='{{$email}}'> 
     <input type ='hidden' name='ip' value='{{$ip}}'> 
    </div> 
    <div class="form-group"> 
     <div class="col-sm-6 col-sm-offset-1"> 
      <input id="submit" name="submit" type="submit" value="Send" class="btn btn-primary pull-right"> 
      <a href="sendsms" class="btn btn-default pull-left"> 
       <i class="fa fa-arrow-left" aria-hidden="true"></i> Cancel 
      </a> 
     </div> 
    </div> 
</form> 

<div class="row"> 
    <div class="col-sm-4 col-sm-offset-2"> 
     <table class="table table-hover"> 
      <thead>      
       <th>ID</th><th>Name</th> <th>Mobile Number</th> <th>Remove</th> 
      </thead> 
      <tbody> 
       @foreach($contacts as $contact) 
        <tr> 
         <td> {{$contact->id }} </td> 
         <td> {{$contact->name}}</td> 
         <td> {{$contact->msisdn}}</td> 
         <td> 
          <form action= '' method='post'> 
           {{csrf_field()}} 
           <input type="radio" name="remove" value="other"> 
<!-- <input type='submit' name='submit' value='submit'> --> 
          </form> 
         </td> 
        </tr> 
       @endforeach 
      </tbody> 
     </table> 
     <div class="pull-right">{{ $contacts->links() }}</div> 
    </div> 
</div> 

最後に、/fun/sendbulk経路を処理コントローラ。

public function sendsms(Request $request){ 
    $message=$request->message; 
    $validator = Validator::make($request->all(), [ 
     'message' => 'required|max:160',]); 
    if ($validator->fails()) { 
     return redirect('/selectContacts') 
      ->withErrors($validator) 
      ->withInput();} 
    $mob_numbers = implode(", " , $contacts); 
    $serviceArguments = array(
     "mobilenumber" => $mobileNum, 
     "message" => $message 
     ); 
    $client = new SoapClient("http://#smsws?wsdl"); 

    $result = $client->process($serviceArguments) 
    } 

親切にアドバイス

答えて

1

smssend関数でこれを追加します。

$start=$request->start; 
$stop=$request->stop; 

$contacts = DB::table('Payment') 
    ->whereBetween('time_paid', [$start, $stop]) 
    ->paginate(5); 

EDIT:選択して連絡先のルートで :

return view('BulkSMS.send', 
    'contacts'=>$contacts, 
    'start' => $start, 
    'stop' => $stop 
); 

とコンタクトビューで:

<input type ='hidden' name='start' value='{{$start}}'> 
<input type ='hidden' name='stop' value='{{$stop}}'> 
0

私はあなたがこれを行うに気づく:

//next page 
return view('BulkSMS.send', 
'contacts'=>$contacts, 
]); 

あなたが開きブラケットを正方形に欠けているようです。私はそれを次のように変更します:

//next page 
return view('BulkSMS.send', compact('contacts'); 
0

ウェイ:1

私はあなたには、いくつかのより多くのものを行う必要がありソウ
return view('YourViewPage', ['VariableName' => $value]); 

ウェイ:2

return view('YourViewPage')with->('VariableName' => $value); 

ウェイ:3

$VariableName = "Your data"; 
return view('YourViewPage', compact('VariableName')); 

デバッグビューページで

{{DD($変数名)}}

関連する問題