链接按钮在 Laravel 中不起作用

Posted

技术标签:

【中文标题】链接按钮在 Laravel 中不起作用【英文标题】:Link Button Not Working in Laravel 【发布时间】:2018-11-19 10:25:25 【问题描述】:

我想在 laravel 的 CRUD 应用程序中编辑一条记录,其中我有一个链接到索引视图的按钮,但是当我单击它时,它会将我重定向到控制器的 UPDATE 方法。 这是我的表格:

!! Form::open(['route' => ['players.update', $player->id], 'method' => 'PUT', 'files'=>'true']) !!

                    <div class="row col-md-10 col-md-offset-1 panel">
                        <div class="col-md-8 col-md-offset-2">

                        <br />

                          <div class="form-group">
                             Form::label('name', 'Player Name') 
                             Form::text('name', $player->name, ['class' => 'form-control']) 
                          </div>

                          <div class="form-group">
                                 Form::label('file', 'Upload Image') 
                                 Form::file('pic') 

                            </div>

                            <div class="form-group">

                              Form::button('Save Record', ['type' => 'submit', 'class' => 'btn btn-success'])
                              !! Form::close() !!

                              <a href=" route('players.index') ">
                                <button class="btn btn-danger" >Cancel</button>
                              </a>

                            </div>
                        </div>
                    </div>   

我有以下按钮用于返回索引页面,但这会将我带到控制器的 UPDATE 方法:

<a href=" route('players.index') ">
    <button class="btn btn-danger" >Cancel</button>
</a>  

这是我在控制器中的索引方法:

public function index()

    $players = Player::paginate(5);
    return view('players.index', compact('players'));
  

这是控制器中的 UPDATE 方法:

public function update(Request $request, $id)

    return "Hi";
    

这是我的路由文件内容:

Route::resource('news', 'NewsController');

Route::resource('competition', 'CompetitionsController');

Route::resource('players', 'PlayersConroller');

在我看来一切都很好,但我不知道这里出了什么问题。 提前感谢任何帮助。

【问题讨论】:

发布路线文件的内容 @AmandeepSingh,我将其添加到问题中。 Arw 你确定你在正确的地方关闭了表单标签,我不这么认为。 我认为您的结束标签排列不正确..请先修复它.. @AbdulRaheemGhani:你觉得它有效吗? 【参考方案1】:

我不确定它是否能解决您的问题,请尝试将您的按钮代码放在表单组 div 之外。

您可以将代码更改为

<a href=" route('players.index') " class="btn btn-danger">Cancel</a>

您可以检查您的 html,您已将按钮放在表单标签内,这是提交类型的原因,这就是它再次提交表单的原因。

将您的表单代码替换为:

<div class="row col-md-10 col-md-offset-1 panel">
    <div class="col-md-8 col-md-offset-2">

        !! Form::open(['route' => ['players.update', $player->id], 'method' => 'PUT', 'files'=>'true']) !!
        <br />

        <div class="form-group">
             Form::label('name', 'Player Name')   Form::text('name', $player->name, ['class' => 'form-control']) 
        </div>

        <div class="form-group">
             Form::label('file', 'Upload Image')   Form::file('pic') 

        </div>

        <div class="form-group">

            Form::button('Save Record', ['type' => 'submit', 'class' => 'btn btn-success'])

        </div>
    !! Form::close() !!
    </div>
    <a href=" route('players.index') ">
        <button class="btn btn-danger">Cancel</button>
    </a>

</div>

【讨论】:

这背后的逻辑是什么? 我在手机上发帖,所以无法发布代码。看来你的html代码结构不对。 @AbdulRaheemGhani :实际上他是对的,你可以检查你的 html 你把button 放在表单标签里面哪个是submit 类型,它照常工作 @AmandeepSingh :我正在更新适用于他的代码,但如果他正确安排了他的标签,那么它将自动工作,button 标签将在 button 类型之外工作 form 标签 @AmandeepSingh :如果您觉得可以更新/删除我的更改。

以上是关于链接按钮在 Laravel 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章

ng-submit 在 Laravel PHP 框架中不起作用

Laravel 5.0 路由模型绑定在销毁操作中不起作用

为啥嵌套循环在 laravel 中不起作用

laravel 项目在“http://localhost/public/”中不起作用,页面显示“此页面不起作用”

为啥在 laravel 的 whereBetween 中不起作用

发布请求在 Laravel 中不起作用