Назначьте идентификатор, чтобы создать «Подробную информацию о представлении» в таблице, чтобы связать его с представлением. - PullRequest
0 голосов
/ 06 мая 2020

У меня есть таблица, и я хочу добавить кнопку «Просмотреть подробности» для каждой строки, которая ссылается на страницу дополнительных сведений. Я легко добавил кнопку, но мне нужна небольшая помощь, чтобы открыть ее для указывает сообщение c, это тоже связано.

Мой текущий вид:

 @extends ('layout')
@section('content')
    <script src="http://code.jquery.com/jquery-1.11.3.min.js"></script>
    <script src="/filtering.js"></script>
    <link href="https://nightly.datatables.net/css/jquery.dataTables.css" rel="stylesheet" type="text/css" />
    <script src="https://nightly.datatables.net/js/jquery.dataTables.js"></script>

    <script src="https://code.jquery.com/jquery-3.3.1.js"> </script>
    <script src="https://cdn.datatables.net/1.10.20/js/jquery.dataTables.min.js"></script>
    <script src="https://cdn.datatables.net/fixedheader/3.1.6/js/dataTables.fixedHeader.min.js"></script>
    <div class="row align-items-center">
        <div class="col">
            <h1>
                MESSAGES R US
            </h1>
        </div>
        <div class="col ">
            <a href="/create" class="btn btn-primary">CREATE MESSAGE</a>
        </div>
        <div class="col ">
            <a href="/details" class="btn btn-primary">VIEW DETAILS</a>
        </div>
    </div>
    <div class="form-group"> <!-- This works-->
        <table id="userTable" data-page-length='5' cellspacing="0"
               class="table table-bordered table-striped table-hover table-condensed"
               role="grid">
            <thead>
                <tr>
                    <th scope="col">CREATED</th>
                    <th scope="col">USERNAME</th>
                    <th scope="col">TO/FROM</th>
                    <th scope="col">UPDATED</th>
                    <th scope="col">MESSAGE ID</th>
                    <th scope="col">STATUS</th>
                    <th scope="col">ACTION</th>
                </tr>
            </thead>

            <tbody>
                @foreach ($messages as $message)
                    <tr>
                        <td>{{$message->created_at}}</td>
                        <td>{{$message->username}}</td>
                        <td class="text-center">
                                    @if ($message->direction == 'from')
                                        <span class='badge badge-warning'>from</span>
                                    @else
                                        <span class='badge badge-success'>{{$message->direction}}</span>
                            @endif

                        </td>
                        <td>{{$message->updated_at}}</td>
                        <td>{{$message->message_id}}</td>
                        <td class="text-center">
                            @if ($message->status == 'FAIL')
                                <span class='badge badge-danger'>FAIL</span>

                            @elseif ($message->status == 'received')
                                <span class='badge badge-info'>received</span>

                            @elseif ($message->status == 'delivered')
                                <span class='badge badge-primary'>delivered</span>

                            @elseif ($message->status == 'queued')
                                <span class='badge badge-warning'>queued</span>

                            @elseif ($message->status == 'read')
                                <span class='badge badge-success'>read</span>

                            @endif
                        </td>

                        </td>
                        <td>
                            <div class="col "><a href="/details" class="btn btn-primary">VIEW</a></div>
                        </td>
                    </tr>
                @endforeach
            </tbody>
        </table>
    </div
@endsection

Я построил это в Laravel, при щелчке по VIEW отображается та же таблица без указания c в строке сообщения, я не знаю, как связать его для дальнейшего отображения деталей идентификатора сообщения. Это развлекательный проект, извините за форматирование и интерфейс. Я новичок в laravel, ранее использовал ASP. NET MVC. Любая помощь приветствуется.

Я понимаю концепцию, которая мне нужна, чтобы заставить ее работать. Используйте message_ID в качестве ключа для кнопки, затем используйте данные этих таблиц (MESSAGE_ID - MESSAGE_TEXT). Мне просто нужна помощь, чтобы соединить точки. :)

1 Ответ

1 голос
/ 06 мая 2020

Сначала вы должны объявить «подробный маршрут» в своем маршруте. Ваш маршрут, возможно, будет выглядеть так

Route::get('/message/{id}/details', 'YourController@details')->name('message.detail');

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

<a href="{{ route('message.detail', $message->id) }}" class="btn btn-primary">VIEW</a>

И последнее в вашем контроллере. у вас должен быть метод, который вы объявили ранее в маршруте (в моем примере имя метода - «детали»).

public function details(Request $request, $id){
    // your detail code here
}
...