#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