php — Как использовать laravel, взорвать косую черту (/) и получить последнее слово

Привет, я действительно новичок в Laravel. Поэтому мне действительно нужна помощь, мне нужно получить последнее слово из $report->reportable_type, а из reportable_type он содержит App/Models/Store и App/Models/Product. Поэтому я хочу взорвать косую черту (/) и получить последнее слово, которое означает магазин или продукт.

Код в моем контроллере работал, но он использовал print_r, а я не хотел использовать print_r.

Это мой контроллер

public function toLink($id)
{
    $report = $this->reportRepository->findWithoutFail($id);

    //get Store Name
    $name = Store::where('id','=',$report->reportable_id)->pluck('name')->all();
    $storename = $name[0];

    //get Store ID
    $idstore = Store::where('id','=',$report->reportable_id)->pluck('id')->all();
    $storeid = $idstore[0];

    if(empty($report))
    {
        Flash::error('Report not found');
        return redirect(route('reports.index'));
    }

    $report_type = $report->reportable_type;
    print_r (explode("/",strrpos($report_type, '/') + 1),$report_type);
    return redirect(env('FRONTEND_URL') ."/".str_slug($reportable_type)."/$storeid/".str_slug($storename));


}

person Sahat Riyanto    schedule 07.08.2017    source источник
comment
Не публикуйте свой код в виде изображения.   -  person Suraj Rao    schedule 07.08.2017
comment
Дружеское напоминание: Не размещайте код в виде изображений. Вместо этого скопируйте и вставьте текст кода в тело вопроса.   -  person Tetsuya Yamamoto    schedule 07.08.2017


Ответы (1)


Вспомогательная функция Laravel class_basename делает именно это.

$type = class_basename($report->reportable_type);

Обновление:
Если вы действительно хотите использовать функцию разнесения, вы можете использовать Laravel last для получения последнего элемента массива.

$type = last(explode('/', $report->reportable_type));
person Jerodev    schedule 07.08.2017
comment
Не могли бы вы сказать мне, взрывается ли class_basename от каждой косой черты и берет последнее слово? App/Models/Store и App/Models/Product, и я хочу получить последнее слово, которое означает магазин и продукт, но спасибо за помощь - person Sahat Riyanto; 07.08.2017
comment
@SahatRiyan, чтобы щелкнуть ссылку, и вы увидите описание помощника: class_basename возвращает имя класса данного класса с удаленным пространством имен класса. Кроме того, в документах есть пример. - person Alexey Mezenin; 07.08.2017
comment
@Jerodev, да, это сработало: DDDD, но не могли бы вы дать мне другой ответ с использованием функции взрыва Laravel? действительно спасибо за вашу помощь: D - person Sahat Riyanto; 07.08.2017
comment
@ Алексей Мезенин, спасибо за ответ, и он сработал, но не могли бы вы дать мне другой ответ с использованием функции взрыва Laravel? :ДДД - person Sahat Riyanto; 07.08.2017
comment
Почему вы хотите использовать функцию взрыва, когда у вас есть этот помощник? - person Jerodev; 07.08.2017
comment
@Jerodev Мой учитель сказал мне попробовать использовать функцию взрыва Laravel: D, но на самом деле спасибо за помощь - person Sahat Riyanto; 07.08.2017
comment
@Jerodev WOH, оба ответа действительно сработали, спасибо за вашу помощь: D благослови вас бог - person Sahat Riyanto; 07.08.2017