【问题标题】:Laravel populate data on redirect routeLaravel 在重定向路由上填充数据
【发布时间】:2019-09-25 06:14:45
【问题描述】:

我正在做一个错误异常,当由于父约束而无法删除条目时显示模式弹出窗口

控制器:

public function deleteUnitType(Request $request, $proj_id)
    {
        $id = $request->id;
        $unit_types = UnitType::where('id', $id);
        $floors = UnitTypeFloor::where('unit_type_id', $id)->get();
        if(count($floors) != 0){
            return redirect()->route('dev-admin.projects.unit-types.index', ['unit_types' => $unit_types, 'proj_id' => $proj_id, 'floors' => $floors])->with('failed', 'Unit Type failed to delete due to existing floor plan.');
        } else {
            // $unit_types->delete();
            return redirect()->route('dev-admin.projects.unit-types.index', ['unit_types' => $unit_types, 'proj_id' => $proj_id])->with('status', 'Unit Type is successfully deleted.');
        }
    }

HTML:

<div class="col-12">
    @if (session('status'))
    <div class="alert alert-success alert-dismissible fade show" role="alert">
        {{ session('status') }}
        <button type="button" class="close" data-dismiss="alert" aria-label="Close">
            <span aria-hidden="true">&times;</span>
        </button>
    </div>
    @elseif (session('failed'))
    <div class="modal fade" id="unit-type-notification-modal" role="dialog">
        <div class="modal-dialog">
            <!-- Modal content-->
            <div class="modal-content">
                <div class="modal-header">
                    <button type="button" class="close" data-dismiss="modal">&times;</button>
                </div>
                <div class="modal-body">
                    <p>{{ session('failed') }}</p>
                    <ul>
                        @foreach($floors as $floor)
                            <li>{{ $floor -> name }}</li>
                        @endforeach
                    </ul>
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
                </div>
            </div>
        </div>
    </div>
    @endif
</div>

$( document ).ready(function() {
        @if (session('failed'))
            $('#unit-type-notification-modal').modal('show');
        @endif

    });

模态弹出窗口和所有内容,但由于某种原因它找不到我的$floor 变量,它说:

未定义变量:楼层

但是当我在控制器上 dd 时,数据存在

【问题讨论】:

    标签: php html laravel laravel-5


    【解决方案1】:

    我认为您应该按照以下方式检查第一个会话是否“失败”。

    @if(Session::has('status'))
    
    @elseif( Session::has( 'failed' ) ) 
    

    还有你的脚本:

    $( document ).ready(function() {
        @if(Session::has('failed'))
            $('#unit-type-notification-modal').modal('show');
        @endif
    
    });
    

    谢谢

    【讨论】:

    • 嗨,我仍然有同样的错误,@if (session('failed')) 如果我删除$floor,此代码将起作用
    • @M.Izzat 您的模态已正确隐藏。单击unit-type-notification-modal 时,未找到$floors。请解释..
    • 它是隐藏的,但在文档准备好时,我让它自动显示。即使它隐藏它也不应该是一个问题
    • @M.Izzat 那么你能在你的控制器文件中更改if($floors-&gt;count() != 0){吗?我认为如果条件通过假。这就是为什么floors 未找到。首先,在if condition 中打印你的'$floors' 数组并检查数据是否到来..
    【解决方案2】:

    你可以在你的重定向路由中添加另一个

    return redirect()->route('dev-admin.projects.unit-types.index', ['unit_types' => $unit_types, 'proj_id' => $proj_id, 'floors' => $floors])
    ->with('failed', 'Unit Type failed to delete due to existing floor plan.')
    ->with('floors', $floors);
    

    或者这个;

    return redirect()->route('dev-admin.projects.unit-types.index', ['unit_types' => $unit_types, 'proj_id' => $proj_id, 'floors' => $floors])
        ->with(['failed' => 'Unit Type failed to delete due to existing floor plan.', 'floors' => $floors]);
    

    【讨论】:

    • @M.Izzat 使用会话('floors')
    猜你喜欢
    • 2020-03-24
    • 1970-01-01
    • 2017-04-12
    • 2018-07-07
    • 2017-06-19
    • 2022-01-26
    • 2021-04-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多