首页 > 解决方案 > 在 laravel 的引导模式中加载视图

问题描述

我想在弹出时以模式加载视图。代码如下。

我的控制器

public function view_update_box(Request $request)
{
    if($request->ajax())
    {
        $player = player::findOrFail($request->id);
            return view('admin-dashboard.includes.modals.playerForm.php', ['player', $player]);
    }
}

MY VIEW(我要加载的) 查看位置:admin/includes/modals/playerForm.blade.php

<form class="form-horizontal">
<fieldset>
    <!-- Text input-->
    <div class="col-md-6 form-group">
        <label class="control-label">Player Name:</label>
        <input type="text" placeholder="Player Name" value="{{$player->player_name}}" class="form-control">
    </div>
    <!-- Text input-->
    <div class="col-md-6 form-group">
        <label class="control-label">Email:</label>
        <input type="email" placeholder="Email" value="{{$player->player_email}}" class="form-control">
    </div>
    <!-- Text input-->

PLAYER VIEW:这是触发并显示模态的地方

<div class="modal fade" id="updateModal" tabindex="-1" role="dialog" aria-hidden="true">
                                                    <div class="modal-dialog">
                                                        <div class="modal-content">
                                                            <div class="modal-header modal-header-primary">
                                                                <button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button>
                                                                <h3><i class="fa fa-user m-r-5"></i> Update Player Profile</h3>
                                                            </div>
                                                            <div class="modal-body">
                                                                <div class="row">
                                                                    <div class="col-md-12" id="update_box">
                                                                    </div>
                                                                </div>
                                                            </div>
                                                            <div class="modal-footer">
                                                                <button type="button" class="btn btn-danger pull-left" data-dismiss="modal">Close</button>
                                                            </div>
                                                        </div>

AJAX 代码:这是触发模式的 Ajax 代码,还假设在上面的模式中呈现响应

$('body').delegate('#updatePlayer', 'click', function(){
                                                        let id = $(this).data('id');
                                                        var token = $(this).data("token");
                                                        $.ajax({
                                                            url:'/admin/players/update',
                                                            type:'get',
                                                            data:{'id':id, '_token': token},
                                                            success: function(data) {
                                                                console.log(data)
                                                                $('#update_box').html(data);
                                                            }
                                                        });
                                                    });

我想要的是

我希望程序使用数据库中的玩家数据加载admin/includes/modals/playerForm.blade.php 。

请任何帮助表示赞赏。

标签: phpjquerylaravel

解决方案


我在您提供的代码示例中发现了两个错误第一个是您说您的视图位置是

admin/includes/modals/playerForm.blade.php

但是当你调用你正在使用的视图时

'admin-dashboard.includes.modals.playerForm.php'

根据您提供的目录结构,这应该是

'admin.includes.modals.playerForm'

第二个是您需要发送渲染视图作为响应,您可以在 view() 方法上使用 laravel 的 render() 方法。

汇总以下代码行

$player = player::findOrFail($request->id);
        return view('admin-dashboard.includes.modals.playerForm.php', ['player', $player]);

应该看起来像

$player = player::findOrFail($request->id);
return view('admin.includes.modals.playerForm', compact('player'))->render();

其他一切看起来都不错。

如果您仍然遇到任何问题,请告诉我。


推荐阅读