laravel: данные для отображения на странице с использованием выпадающего списка - PullRequest
0 голосов
/ 22 февраля 2020

Я использую раскрывающийся список меню для отображения списка отелей из моей системы. В настоящее время у меня есть следующий код, который, когда я нажимаю кнопку отправить, ничего не происходит (данные не отображаются).

Кто-нибудь знает, как я могу потенциально отображать данные после нажатия кнопки отправки?

Вывод в настоящее время он показывает идентификатор отеля в URL EG (http ... search? title = 3), показывая, что он частично работает, однако мне удается отобразить его на моей странице?

Search.blade. php

@extends ('layouts.app')
@section('content')  

{!! Form::open(['action' => 'SearchController@index', 'method' => 'GET']) !!}
<div class="form-group">
    <select name="distance" id="distance" class="form-control input-lg dynamic" data-dependent="state">
        <option value="">Choose an item</option>
        @foreach($posts as $post)
            <option value="{{ $post->id }}">{{ $post->distance }}</option>
        @endforeach
    </select>
</div>
<div class="form-group">
    {{ Form::Submit('submit', ['class' => 'btn btn-primary']) }}
</div>
@if($request)

                <p>{{ $request->title }}</p>
                <p>{{ $request->distance }}</p>
                <img src="{{$request->image}}" height = 200 width =200>

    @endif


SearchController. php


   public function index(Request $request)
   {
       $posts = Post::all();

       $selectedPost = $request->has('distance')
           ? Post::find($request->distance)
           : null;

       return view('Pages.search', [
           'posts' => $posts,
           'request' => $selectedPost
       ]);
   }

   public function store(Request $request)
   {
       // This will return all request data to your screen.
       return $request->all();
       return view('Pages.search');
   }


1 Ответ

1 голос
/ 22 февраля 2020

Logi c для извлечения данных следует размещать внутри контроллера, представление отображает только данные.

search.blade. php

{!! Form::open(['action' => 'SearchController@index', 'method' => 'GET']) !!}
<div class="form-group">
    <select name="post_id" id="title" class="form-control input-lg dynamic" data-dependent="state">
        <option value="">Choose an item</option>
        @foreach($posts as $post)
            <option value="{{ $post->id }}">{{ $post->title }}</option>
        @endforeach
    </select>
</div>
<div class="form-group">
    {{ Form::Submit('submit', ['class' => 'btn btn-primary']) }}
</div>

@if($post)
    <div class="table">
        <table>
            <tr>
                <th>Hotel name</th>
                <td>{{ $post->title }}</td>
                <th>Distance</th>
                <td>{{ $post->distance }}</td>
                <th>Images</th>
                <td>{{ $post->image }}</td>
            </tr>
        </table>
    </div>
@endif 

App / Http / Controller / SearchController. php

namespace App\Http\Controllers;

use App\Post;
use Illuminate\Http\Request;

class SearchController extends Controller {

    public function index(Request $request)
    {
        $posts = Post::all();

        $selectedPost = $request->has('post_id')
            ? Post::find($request->post_id)
            : null;

        return view('Pages.search', [
            'posts' => $posts,
            'post' => $selectedPost
        ]);
    }

    public function store(Request $request)
    {
        // This will return all request data to your screen.
        return $request->all();
        return view('Pages.search');
    }
}

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...