2016-04-14 7 views
1

Benim larave projemde bir BusController.php dosyası var. Bir for döngüsü çalıştırmam gereken yer. Ama döngü çalışmıyor. Aynı zamanda döngü için de aynı problemi denedim. İşte BusController.php dosyası için kodum.Döngü bir laravel denetleyici sınıfında çalışmaz

<?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

deneyin Ve bunu test etmek için, burada benim yaptığım iş için parantez kaldırıldıktan sonra ($ i = 1; $ i <= $request-> no_of_rows * $ request-> no_of_columns; $ i ++) { $ seats = $ sandalye. "b"; } –

+0

"$ request-> no_of_rows" ve "$ request-> no_of_columns" öğelerinin değerlerini "for" döngüsünden önce atar mısınız? –

+0

İstek dizisinde $ request-> no_of_rows * $ request-> no_of_columns b bulunan bir dizgiye sahip olmak istiyorum. Aslında koltukları yerine koyuyorum + = "b"; @SagarGuhe –

cevap

3

Eğer Request alınan verileri valide emin olun. Çünkü loop condition her zaman yanlış olduğundan döngü başarısız olur.

$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); 

Çıktı:

string(0) "" 

Ve işte birini çalışıyor:

$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); 

Çıktı:

string(40) "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbbb"