2016-04-14 15 views
1

私のlaraveプロジェクトではBusController.phpファイルがあります。私はforループを実行する必要があります。しかし、ループは機能していません。私もループのためのブレードを試みたが、同じ問題。 ここに私のBusController.phpファイルのコードがあります。forループがlaravelコントローラクラスで動作していません

<?php 

namespace App\Http\Controllers; 

use Illuminate\Http\Request; 
use DB; 
use App\Bus; 
use App\Bus_type; 
use App\Company; 

use App\Http\Requests; 

class BusController extends Controller 
{ 


public function index() 
{ 

    $buses = Bus::all(); 
    $bus_types = Bus_type::all(); 
    $companies = Company::all(); 

    return view('admin.adding_bus', compact('buses','bus_types', 'companies')); 
} 
public function store(Request $request) 
{ 
    $bus = new Bus; 

    $bus->company_name = $request->company_name; 
    $bus->bus_type = $request->bus_type; 
    $bus->bus_number = $request->bus_number; 
    $bus->no_of_rows = $request->no_of_rows; 
    $bus->no_of_columns = $request->no_of_columns; 
    $seats = ""; 

    for($i = 1; $i <= ($request->no_of_rows * $request->no_of_columns); $i++){ 
     $seats = $seats."b"; 
    } 


    $bus->seats = $seats; 

    $bus->save(); 
    $buses = Bus::all(); 
    $bus_types = Bus_type::all(); 
    $companies = Company::all(); 

    return view('admin.adding_bus', compact('buses','bus_types', 'companies')); 

    } 

} 
+0

試して そして、それをテストするには、ここで私は何をすべきかですfor($ i = 1; $ i <= $request-> no_of_rows * $ request-> no_of_columns; $ i ++){ $座席= $座席 "b"; } –

+0

'for'サイクルの前に' $ request-> no_of_rows'と '$ request-> no_of_columns'の値をダンプできますか? –

+0

私は座席の文字列に$ request-> no_of_rows * $ request-> no_of_columns b文字列を持っています。実際には私は座席+ = "b"をするつもりです; @SagarGuhe –

答えて

3

Requestから受け取ったデータを確認してください。もしあなたがしなければ、loop conditionは常に偽になるのでループは失敗するでしょう。

$seats = ""; 
$num_cols = 2; 
$num_rows = ''; // assume you don't validate the request, so this can receive empty string too 
// $num_rows = 0; // will output the same as above 
for($i = 1;$i<=($num_cols * $num_rows);$i++) 
{ 
    $seats = $seats."b"; 
} 
var_dump($seats); 

出力:

string(0) "" 

そして、ここではそれが1に取り組んでいる:

$seats = ""; 
$num_cols = 2; 
$num_rows = 20; // correctly validated as integer and must be more than 0 because you're doing multiplication here in the following loop 
for($i = 1;$i<=($num_cols * $num_rows);$i++) 
{ 
    $seats = $seats."b"; 
} 
var_dump($seats); 

出力:

string(40) "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"