php - For 循环在 Laravel Controller 类中不起作用

标签 php laravel for-loop laravel-5.2

在我的 Laravel 项目中,我有一个 BusController.php 文件,我需要在其中运行 for() 循环。但是,循环不起作用。我也尝试了一个用于循环的 Blade ,但遇到了同样的问题。

BusController.php

<?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'));
    }
}

最佳答案

确保您已经验证了从Request 收到的数据。因为如果你不这样做,循环就会失败,因为 loop condition 总是 false。 为了测试它,我会这样做:

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

这是工作的一个:

$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"

关于php - For 循环在 Laravel Controller 类中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36614952/

相关文章:

php - 使用多个过滤器和分页来简化 Eloquent Laravel?

php - 向 WooCommerce 单个产品页面添加多个选项卡

php - Laravel:多个事件的单一监听器

python - 基于 YAML 数据的条件 Python for 循环

javascript - 如何移动到下一个 td 并检查 Css 类?

php 5.5.5 不适用于 Apache 2.4.7

php - 由于 E_WARNING,我是否需要在 PHP 中尝试/捕获 opendir?

php - Laravel 5.1 获取 start_time 和 end_time 之间的行(两个不同的字段)

javascript - 如何检查数据库 PHP Laravel 中是否存在复选框数组值?

javascript - Array.map() 与 for 循环对字符串进行标题封装