gpt4 book ai didi

php - 如何在 Laravel 中使用按钮传递列名称?

转载 作者:行者123 更新时间:2023-11-29 15:13:38 25 4
gpt4 key购买 nike

我已经能够对表中的数据进行排序,但我正在尝试获取它,以便当我单击列标题时,它会按该标题类别对数据进行排序。

路线

Route::get('/sort', 'ContactController@sort')->name('contacts.sort');
Route::get('/sortDesc', 'ContactController@sortDesc')->name('contacts.sortDesc');

index.blade.php

@extends('layouts.master')

@section('content')

<div class="container">
<div>
<div style="margin-top:10px;">
<h3>Contacts</h3>
</div>
<div style="margin-top:10px; margin-bottom:10px;">
<a class="btn btn-sm btn-success" href="{{ route('contacts.create') }}">Create New Contact</a>
</div>
</div>

<div class="table-responsive">
<table class="table table-hover">
<tr class="row" style="text-align:center">
<th class="col-sm-1"><button type="submit" class="btn" href="{{ route('contacts.sort', ['column' => 'firstName'] )}}">First Name</button></th>
<th class="col-sm-2"><button type="submit" class="btn" href="{{ route('contacts.sort', ['column' => 'lastName'] )}}">Last Name</button></th>
<th class="col-sm-2"><button type="submit" class="btn" href="{{ route('contacts.sort', ['column' => 'email'] )}}">Email</button></th>
<th class="col-sm-1"><button type="submit" class="btn" href="{{ route('contacts.sort', ['column' => 'phone'] )}}">Phone</button></th>
<th class="col-sm-1"><button type="submit" class="btn" href="{{ route('contacts.sort', ['column' => 'birthday'] )}}">Birthday</button></th>
<th class="col-sm-4">Action</th>
</tr>
<tbody>
@foreach ($contacts as $key => $value)
<tr class="row" style="text-align:center">
{{-- Need to add in sort functions for each catagory --}}
<td class="col-sm-1">{{$value->firstName}}</td>
<td class="col-sm-2">{{$value->lastName}}</td>
<td class="col-sm-2">{{$value->email}}</td>
<td class="col-sm-1">{{$value->phone}}</td>
<td class="col-sm-1">{{$value->birthday}}</td>
<td class="col-sm-4">
<form action="{{ route('contacts.destroy', $value->id) }}" method="post">
<a class="btn btn-sm btn-success" href="{{ route('contacts.show', $value->id)}}">Show</a>
<a class="btn btn-sm btn-warning" href="{{ route('contacts.edit', $value->id)}}">Edit</a>
<a class="btn btn-sm btn-second" href="{{ route('contacts.createAddress', ['contact_id' => $value->id])}}">Add Address</a>
@csrf
@method('DELETE')
<button type="submit" class="btn btn-sm btn-danger">Delete</button>
</form>
</td>
</tr>
@endforeach
</tbody>
</table>
</div>
{{ $contacts->links() }}
</div>
@endsection

联系 Controller

    public function sort( Request $request)
{
dump($request);
$column = $request->column;
$contacts = DB::table('contacts')->orderBy($column)->simplePaginate(10);
return view('contacts.sort', ['contacts' => $contacts]);
}

当我点击按钮时什么也没有发生。我没有从转储中返回任何内容,并且网络显示按钮没有任何操作。

提前致谢

最佳答案

将按钮更改为这样的标签

<th class="col-sm-1"><a type="submit" class="btn" href="{{ route('contacts.sort', ['column' => 'phone'] )}}">Phone</a></th>

那么你的路线应该是这样的

Route::get('/sort/{column}', 'ContactController@sort')->name('contacts.sort');
Route::get('/sortDesc/{column}', 'ContactController@sortDesc')->name('contacts.sortDesc');

然后在你的 Controller 中,因为你使用的是 get request,所以删除排序函数参数上的 $request 并更改为这个

public function sort($column)
{
dump($column);
$contacts = DB::table('contacts')->orderBy($column)->simplePaginate(10);
return view('contacts.sort', ['contacts' => $contacts]);
}

关于php - 如何在 Laravel 中使用按钮传递列名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59872324/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com