отправка переменной через ссылку на контроллер laravel [Исправлено ОБНОВЛЕНИЕ]

#php #html #laravel #routes #controller

#php #HTML #laravel #маршруты #контроллер

Вопрос:

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

Есть мой index.blade.php :

         <?php
        $letters= range('A', 'Z'); 
        ?>
        
        <h4>Movies with letter -?- </h4>
        @foreach($letters as $letter)

        <a href='{{$letter}}'>{{$letter}}</a>
                
        @endforeach
 

и вот мой маршрут :

 Route::put('/{letter}','AppHttpControllersMoviesController@show');
 

Есть функция контроллера :

        public function show( $letter)
       {
        $letter= $letter;
       
        $colection= DB::table('movies')
            ->where('title', 'like', $letter.'%')
            ->get()  ;  
            
        return view( 'index', ['colection' => $colection] );            }
 

спасибо всем за помощь!

Комментарии:

1. Измените эту строку public function show($letter) и удалите $letter= $request->letter; , и ваш метод маршрута будет установлен, поэтому вы не можете использовать метод get с этим <a href="" > {{$letter}} </a>

2. Если вы хотите передавать данные с помощью привязки, измените свой маршрут put на get , и эта строка должна быть такой <a href="/catch/{{ $letter }}" > {{$letter}} </a>

3. Очистить кэш маршрута php artisan route:clear

4. для этого вам нужен javascript

Ответ №1:

Попробуйте это:

 <?php
    $letters= range('A', 'Z'); 
    ?>
    
    @foreach($letters as $letter)

    <a href="catch/{{$letter}}" > {{$letter}} </a>                    
          
    @endforeach