получить идентификатор из сетки элементов и сохранить в переменную - PullRequest
0 голосов
/ 15 ноября 2018

Я работаю с Laravel 5, чтобы сделать следующее: У меня есть сетка, которая показывает всех клиентов, которые есть у компании, в каждой строке этой сетки есть кнопка для выбора этого клиента, например:

Сетка клиентов

Эта кнопка отправляет меня на отдельный экран, который напрямую связан с выбранным клиентом, когда это происходит, URL-адрес выглядит следующим образом:

http://sistemaprueba.com/modulos?1

, где значение после знака вопроса представляет значение идентификатора выбранного клиента.Теперь мне нужно сохранить значение этого идентификатора в переменной, чтобы иметь возможность использовать его позже, как я могу это сделать?

Это моя сетка:

<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 голосов
/ 16 ноября 2018

Вы можете либо изменить свой href на "/ modulos / 1", а свой маршрут и контроллер на:

// route
Route::get('/modulos/{clientId}', 'HomeController@modulos')->name('modulos');

// controller
public function index($clientId)
{
  // Use $clientId
}

Или указать именованный параметр в своем URL, например, "/ modulos? ClientId = 1", затем:

// route (unchanged)
Route::get('/modulos', 'HomeController@modulos')->name('modulos');

// controller
public function index()
{
  $clientId = request()->input('clientId');
  ...
}

В качестве альтернативы, вы можете проанализировать URL-адрес с помощью PHP-функции parse_url () в вашем контроллере, чтобы извлечь GET-часть URL-адреса, которой вы можете манипулировать.Не самое чистое решение.http://php.net/manual/en/function.parse-url.php

Первый метод может быть предпочтительным для вашей цели.

...