从项目网格获取ID并保存到变量中

时间:2018-11-15 20:15:01

标签: laravel laravel-5 routes laravel-routing

我正在与Laravel 5一起执行以下操作:我有一个网格,该网格显示了公司拥有的所有客户,在该网格的每一行中,都有一个按钮来选择该客户:

Grid of clients

此按钮将我发送到与所选客户端直接相关的单独屏幕,发生这种情况时,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');
    }
}

1 个答案:

答案 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

第一种方法可能更适合您的目的。