Laravel заполнить данные о маршруте перенаправления - PullRequest
0 голосов
/ 25 сентября 2019

Я делаю исключение ошибки, когда отображается модальное всплывающее окно, когда не удается удалить запись из-за родительского ограничения

Контроллер:

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 переменную, он говорит:

Неопределенная переменная: floor

но когда я ddэто на моем контроллере, данные существуют

Ответы [ 2 ]

0 голосов
/ 25 сентября 2019

Вы можете добавить еще один с вашим маршрутом перенаправления

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]);
0 голосов
/ 25 сентября 2019

Я думаю, вы должны проверить, что первая сессия "провалилась" следующим образом.

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

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

И ваш сценарий:

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

});

Спасибо

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...