我正在与Laravel 5一起执行以下操作:我有一个网格,该网格显示了公司拥有的所有客户,在该网格的每一行中,都有一个按钮来选择该客户:
此按钮将我发送到与所选客户端直接相关的单独屏幕,发生这种情况时,URL如下:
http://sistemaprueba.com/modulos?1
其中问号后的值表示所选客户端的id的值。现在,我需要将该id的值保存在变量中,以便以后使用它,该怎么办?
这是我的网格:
<div class="row">
<div class="table-responsive">
<table class="table">
<thead>
<tr>
<th>Nombre Cliente</th>
<th>Ingresar</th>
</tr>
</thead>
<tbody>
@foreach($results as $result)
<tr>
<td>{{$result->nombre_cliente}}</td>
<td><a href="{{ route ('modulos',[$result->id])}}" class="btn-box-tool" ><i class="fas fa-sign-in-alt" aria-hidden="true"></i></a>
</tr>
@endforeach
</tbody>
</table>
</div>
</div>
这是通往新幕布的路线:
Route::get('/modulos', 'HomeController@modulos')->name('modulos');
我的控制器如下所示:
class ClientController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function index()
{
$id = \Auth::user()->id;
$results = DB::table('clients')->join('clients_company', 'clients_company.fk_id_client', '=', 'client.id')
->where('clients_company.fk_id_usuar',$id)->get();
return view('clients',compact('results'));
}
public function modulos()
{
return view('modulos');
}
}
答案 0 :(得分:0)
您可以将href更改为“ / modulos / 1”,并将路由和控制器更改为:
// route
Route::get('/modulos/{clientId}', 'HomeController@modulos')->name('modulos');
// controller
public function index($clientId)
{
// Use $clientId
}
或者在您的网址中输入一个命名参数,例如“ / modulos?clientId = 1”,然后:
// route (unchanged)
Route::get('/modulos', 'HomeController@modulos')->name('modulos');
// controller
public function index()
{
$clientId = request()->input('clientId');
...
}
或者,您可以在控制器中使用PHP的函数parse_url()解析URL,以提取URL的GET部分供您操作。不是最干净的解决方案。 http://php.net/manual/en/function.parse-url.php
第一种方法可能更适合您的目的。