Laravel Framework, PHP & MySQL, Tutorials

Series


It's good that any folder on Dropbox can be accessed but it would be even better if we had a dynamic breadcrumb to allow you to jump back to any folder in the path, Let's add this!

Open FileManagerController.php and go to the Index method.

Add this snippet:

$breadcrumb = '';
$last_segment = '';
$breadcrumb.= '<ol class="breadcrumb">';
foreach (request()->segments() as $segment) {
    $last_segment .= '/' . $segment;
    $breadcrumb.= '<li class="breadcrumb-item"><a href="'.$last_segment.'">' . ucfirst($segment) . '</a></li>';
}
$breadcrumb.= '</ol>';

Let's go though what this code does.

First create the variables $breadcrumb and $last_segment.
The $breadcrumb will hold an orderd list with a class of breadcrumb. This is a standard bootstrap class to take care of the styling.

Next loop over request()->segments() this will containing an array of all the URL parts seperated from the slashes.
Upon each loop add the precedding slash to the $segment and add that to the a link. the $last_segment will contain the url for each folder path.

Pass the $breadcrumb to the view:

 return view('filemanager.index', compact('results', 'breadcrumb'));

Then display where you want the breadcrumbs to display:

{!! $breadcrumb !!}