AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • 主页
  • 系统&网络
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • 主页
  • 系统&网络
    • 最新
    • 热门
    • 标签
  • Ubuntu
    • 最新
    • 热门
    • 标签
  • Unix
    • 最新
    • 标签
  • DBA
    • 最新
    • 标签
  • Computer
    • 最新
    • 标签
  • Coding
    • 最新
    • 标签
主页 / user-10359396

BIKAPPA2's questions

Martin Hope
BIKAPPA2
Asked: 2025-03-29 16:54:51 +0800 CST

Laravel 错误,未定义的变量传递给视图

  • 6

我是 laravel 的新手,我 Undefined variable $columnCounts在查看时遇到了一个错误。

我有一个 index() 方法,它调用同一个 NumberController 的另外两个方法 columnCount() 和 rowCount() 来进行少量数字计数。

这是 index() 方法:

    public function index()
{
    //

    $column1count = $this->countColumn(1);
    $column2count = $this->countColumn(2);
    $column3count = $this->countColumn(3);

    $row1count = $this->countRow(1);
    $row2count = $this->countRow(2);
    $row3count = $this->countRow(3);

    $columnCounts = [['column' => 1, 'count' => $column1count], ['column' => 2, 'count' => $column2count], ['column' => 3, 'count' => $column3count]];
    $rowCounts = [['row' => 1, 'count' => $row1count], ['row' => 2, 'count' => $row2count], ['row' => 3, 'count' => $row3count]];
    $numbers =  Number::all();
    return view('index', ['numbers' => $numbers, 'columnCounts' => $columnCounts, 'rowCounts' => $rowCounts]);
}

这是 columnCount() 方法:

    public function countColumn($column)
{
    $lastNumber = Number::all()->sortByDesc('created_at')->first();
    $lastColumn = Number::all()->where('colonna', '=', $column)->sortByDesc('created_at')->first();
    $count = $lastNumber->id - $lastColumn->id;
    return $count;
}

这是 rowCount() 方法:

    public function countRow($row)
{
    $lastNumber = Number::all()->sortByDesc('created_at')->first();
    $lastRow = Number::all()->where('riga', '=', $row)->sortByDesc('created_at')->first();
    $count = $lastNumber->id - $lastRow->id;
    return $count;
}

如果我转到索引路线,一切顺利,它会显示列数和行数以及序列中的所有数字。

我在索引视图中有一个表单,用于在数据库中存储一个新号码。该表单具有索引操作,并在将号码存储到数据库后,我会执行以下操作:

return $this->index();

这是我的 store() 方法:

    public function store(StoreNumberRequest $request)
{
    $validated = $request->validated();


    if ($validated) {

        $lastNumber = $request->input('lastNumber');
        $column1 = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12];
        $column2 = [13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24];
        $column3 = [25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36];
        $row1 = [1, 4, 7, 10, 13, 16, 19, 22, 25, 28, 31, 34];
        $row2 = [2, 5, 8, 11, 14, 17, 20, 23, 26, 29, 32, 35];
        $row3 = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30, 33, 36];


        if (in_array($lastNumber, $column1) && in_array($lastNumber, $row1)) {
            $number = [
                'number' => $request->input('lastNumber'),
                'colonna' => 1,
                'riga' => 1,
            ];
            Number::create($number);
            $numbers =  Number::all();
            return view('index', ['numbers' => $numbers]);
        } elseif (in_array($lastNumber, $column1) && in_array($lastNumber, $row2)) {
            $number = [
                'number' => $request->input('lastNumber'),
                'colonna' => 1,
                'riga' => 2,
                'created_at' => now(),
                'updated_at' => now(),
            ];
            Number::create($number);
            $numbers =  Number::all();
            return view('index', ['numbers' => $numbers]);
        } elseif (in_array($lastNumber, $column1) && in_array($lastNumber, $row3)) {
            $number = [
                'number' => $request->input('lastNumber'),
                'colonna' => 1,
                'riga' => 3,
                'created_at' => now(),
                'updated_at' => now(),
            ];
            Number::create($number);
            $numbers =  Number::all();
            return view('index', ['numbers' => $numbers]);
        } elseif (in_array($lastNumber, $column2) && in_array($lastNumber, $row1)) {
            $number = [
                'number' => $request->input('lastNumber'),
                'colonna' => 2,
                'riga' => 1,
                'created_at' => now(),
                'updated_at' => now(),
            ];
            Number::create($number);
            $numbers =  Number::all();
            return view('index', ['numbers' => $numbers]);
        } elseif (in_array($lastNumber, $column2) && in_array($lastNumber, $row2)) {
            $number = [
                'number' => $request->input('lastNumber'),
                'colonna' => 2,
                'riga' => 2,
                'created_at' => now(),
                'updated_at' => now(),
            ];
            Number::create($number);
            $numbers =  Number::all();
            return view('index', ['numbers' => $numbers]);
        } elseif (in_array($lastNumber, $column2) && in_array($lastNumber, $row3)) {
            $number = [
                'number' => $request->input('lastNumber'),
                'colonna' => 2,
                'riga' => 3,
                'created_at' => now(),
                'updated_at' => now(),
            ];
            Number::create($number);
            $numbers =  Number::all();
            return view('index', ['numbers' => $numbers]);
        } elseif (in_array($lastNumber, $column3) && in_array($lastNumber, $row1)) {
            $number = [
                'number' => $request->input('lastNumber'),
                'colonna' => 3,
                'riga' => 1,
                'created_at' => now(),
                'updated_at' => now(),
            ];
            Number::create($number);
            $numbers =  Number::all();
            return view('index', ['numbers' => $numbers]);
        } elseif (in_array($lastNumber, $column3) && in_array($lastNumber, $row2)) {
            $number = [
                'number' => $request->input('lastNumber'),
                'colonna' => 3,
                'riga' => 2,
                'created_at' => now(),
                'updated_at' => now(),
            ];
            Number::create($number);
            $numbers =  Number::all();
            return view('index', ['numbers' => $numbers]);
        } elseif (in_array($lastNumber, $column3) && in_array($lastNumber, $row3)) {
            $number = [
                'number' => $request->input('lastNumber'),
                'colonna' => 3,
                'riga' => 3,
                'created_at' => now(),
                'updated_at' => now(),
            ];
            Number::create($number);
            $numbers =  Number::all();
            return view('index', ['numbers' => $numbers]);
        } elseif ($lastNumber === 0) {
            $number = [
                'number' => $request->input('lastNumber'),
                'colonna' => 0,
                'riga' => 0,
                'created_at' => now(),
                'updated_at' => now(),
            ];
            Number::create($number);

            return $this->index();
        }
    }
}

这是 index.blade.view :

        <div class="row text-center">
        @foreach ($columnCounts as $column)
            <div class="col border border-2 border-dark p-5 mb-5">

                <p>Column {{ $column['column'] }} Count</p>
                <p>{{ $column['count'] }}</p>
            </div>
        @endforeach
        @foreach ($rowCounts as $row)
            <div class="col border border-2 border-dark p-5 mb-5">
                <p>Row {{ $row['row'] }} Count</p>
                <p>{{ $row['count'] }}</p>
            </div>
        @endforeach

    </div>

但是提交表单后,当我返回 $this->index(); 时,我收到“未定义变量 $columnCounts”的信息。

我在视图中也有一个删除按钮。该按钮调用 destroy() 方法来删​​除序列中插入的最后一个数字。

这是 destroy() 方法:

    public function destroy()
{

    DB::table("numbers")->orderBy("created_at", "DESC")->take(1)->delete();

    return $this->index();
}

在 destroy() 方法中我返回 $this->index(); 就像在 store() 方法中一样。

当我使用 destroy() 删除一个数字时,应用程序会返回索引并正常运行,但使用 store() 时会出现该错误。

有人可以向我解释我做错了什么,以及是否有更好的方法将 $variables 发送到视图而不会出现此问题?

laravel
  • 2 个回答
  • 38 Views

Sidebar

Stats

  • 问题 205573
  • 回答 270741
  • 最佳答案 135370
  • 用户 68524
  • 热门
  • 回答
  • Marko Smith

    重新格式化数字,在固定位置插入分隔符

    • 6 个回答
  • Marko Smith

    为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会?

    • 2 个回答
  • Marko Smith

    VScode 自动卸载扩展的问题(Material 主题)

    • 2 个回答
  • Marko Smith

    Vue 3:创建时出错“预期标识符但发现‘导入’”[重复]

    • 1 个回答
  • Marko Smith

    具有指定基础类型但没有枚举器的“枚举类”的用途是什么?

    • 1 个回答
  • Marko Smith

    如何修复未手动导入的模块的 MODULE_NOT_FOUND 错误?

    • 6 个回答
  • Marko Smith

    `(表达式,左值) = 右值` 在 C 或 C++ 中是有效的赋值吗?为什么有些编译器会接受/拒绝它?

    • 3 个回答
  • Marko Smith

    在 C++ 中,一个不执行任何操作的空程序需要 204KB 的堆,但在 C 中则不需要

    • 1 个回答
  • Marko Smith

    PowerBI 目前与 BigQuery 不兼容:Simba 驱动程序与 Windows 更新有关

    • 2 个回答
  • Marko Smith

    AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String”

    • 1 个回答
  • Martin Hope
    Fantastic Mr Fox msvc std::vector 实现中仅不接受可复制类型 2025-04-23 06:40:49 +0800 CST
  • Martin Hope
    Howard Hinnant 使用 chrono 查找下一个工作日 2025-04-21 08:30:25 +0800 CST
  • Martin Hope
    Fedor 构造函数的成员初始化程序可以包含另一个成员的初始化吗? 2025-04-15 01:01:44 +0800 CST
  • Martin Hope
    Petr Filipský 为什么 C++20 概念会导致循环约束错误,而老式的 SFINAE 不会? 2025-03-23 21:39:40 +0800 CST
  • Martin Hope
    Catskul C++20 是否进行了更改,允许从已知绑定数组“type(&)[N]”转换为未知绑定数组“type(&)[]”? 2025-03-04 06:57:53 +0800 CST
  • Martin Hope
    Stefan Pochmann 为什么 {2,3,10} 和 {x,3,10} (x=2) 的顺序不同? 2025-01-13 23:24:07 +0800 CST
  • Martin Hope
    Chad Feller 在 5.2 版中,bash 条件语句中的 [[ .. ]] 中的分号现在是可选的吗? 2024-10-21 05:50:33 +0800 CST
  • Martin Hope
    Wrench 为什么双破折号 (--) 会导致此 MariaDB 子句评估为 true? 2024-05-05 13:37:20 +0800 CST
  • Martin Hope
    Waket Zheng 为什么 `dict(id=1, **{'id': 2})` 有时会引发 `KeyError: 'id'` 而不是 TypeError? 2024-05-04 14:19:19 +0800 CST
  • Martin Hope
    user924 AdMob:MobileAds.initialize() - 对于某些设备,“java.lang.Integer 无法转换为 java.lang.String” 2024-03-20 03:12:31 +0800 CST

热门标签

python javascript c++ c# java typescript sql reactjs html

Explore

  • 主页
  • 问题
    • 最新
    • 热门
  • 标签
  • 帮助

Footer

AskOverflow.Dev

关于我们

  • 关于我们
  • 联系我们

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve