#php #laravel #laravel-5
Вопрос:
В моем приложении Laravel я создал URL: например «www.example.com/rent/property-for-rent/45» но здесь я хочу удалить идентификатор из последнего и объединить идентификатор с моим 2-м параметром, то есть «недвижимость в аренду», например : «www.example.com/rent/property-for-rent-45».
В функции контроллера получите 3 параметра
public function single_properties(Request $request, $property_purpose, $slug, $id)
В файле блейда
{{url(strtolower($property-gt;property_purpose).'/'.$property-gt;property_slug)}}
В Web.php Файл
Route::get('{property_purpose}/{slug}/{id}', 'PropertiesController@single_properties');
Я попытался уменьшить параметр из функции, лезвия и маршрута, но у меня ничего не вышло. может кто-нибудь, пожалуйста, помочь мне, я плохо в этом запутался,
Комментарии:
1. в чем заключается ошибка? что делать, если пуля содержит в себе int?
Ответ №1:
вы можете просто сделать это вот так:
public function singleProperties(Request $request, $property_purpose, $slug, $id) { // old url: example.com/rent/property-for-rent/45 // new url: example.com/rent/property-for-rent-45 $newUrl = $property_purpose . '/' . $slug . '-' . $id; return view('your.view.blade', [ 'new_url' =gt; $newUrl, ]); }
И в твоем зове клинка {{ $new_url }}
Комментарии:
1. Это решение не работает. Верхняя функция «SingleProperties» используется для получения записей и отображения в виде одного свойства. на самом деле мы получаем записи на основе идентификаторов. Итак, что мне теперь делать?
2. Итак, вы хотите делать это для каждой записи, которую вы получаете? Можете ли вы показать мне содержимое свойства, какие данные оно содержит?
Ответ №2:
Вы можете сделать это простым способом. Поскольку URL-адрес выглядит следующим образом:-
www.example.com/rent/property-for-rent-45
Структура URL-адреса для маршрута будет выглядеть следующим образом: /аренда/slug-id Означает, что идентификатор связан со слизняком. поэтому laravel будет рассматривать его как полную строку, как только слизень. Мы определим это, а позже в контроллере извлекем идентификатор из слизняка.
Так что в маршрутах/ web.php вы можете определить, как:-
В Web.php Маршрут файла::get(‘{property_purpose}/{slug}’,’PropertiesController@single_properties’);
В файле блейда
{{url(strtolower($property-gt;property_purpose).'/'.$property-gt;property_slug-$property-gt;property_id)}}
В файле контроллера Вы определяете, как:-
Здесь переменная Slug, которую вы должны проанализировать, используя известную функцию PHP. Как и в случае с информацией, вы знаете, что идентификатор появляется последним после символа. Таким образом, вы можете взорвать переменную slug и взять идентификатор, который будет последним после —
public function singleProperties(Request $request, $property_purpose, $slug) { $slugarr=explode('-',$slug); $id=$slugarr[count($slugarr) 1];// As index starts from 0, for getting last you have to this //Now you got the $id you can fetch record you want this id }