Route [partner.file.download] not defined. is the error i get, but this route is defined. and yes i am logged in as a 'partner'
Web.php
Route::group(['middleware' => 'role:partner', 'prefix' => 'partner', 'as' => 'partner.'], function(){
Route::resource('/dashboard', App\Http\Controllers\partner\PartnerController::class);
Route::resource('/profile', App\Http\Controllers\partner\ProfileController::class);
Route::resource('/file', App\Http\Controllers\partner\FileController::class);
});
controller
public function show($id)
{
$file = File::findOrFail($id);
return view('partner.file.viewfile', compact('file'));
}
public function download($id)
{
return view('partner.file.index', compact('file));
}
index.blade
<tbody>
@foreach($files as $file)
<tr>
<td>{{$file->title}} </td>
<td>
<a style="background: orange;" href="{{ route('partner.file.show', $file->id) }}">View</a>
</td>
<td>
<a style="background: green;" href="{{ route('partner.file.download', $file->id) }}"></a>
</td>
<td>{{@$file->language->name}} </td>
@foreach($file->tag as $tags)
<td style="background:{{$tags['color']}} ;">{{@$tags->name}} </td>
@endforeach
</tr>
@endforeach
</tbody>
CodePudding user response:
PLEASE READ THE DOCS
as @aynber mentioned in the comments, when you create routes using resource()
, it will create index, create, store, show, edit, update and delete
. There is no "download" route here.
If you need a route that is not in the list of default routes (here you need download), you should create that one explicitly as below:
Route::group(['middleware' => 'role:partner', 'prefix' => 'partner', 'as' => 'partner.'], function(){
Route::resource('/dashboard', App\Http\Controllers\partner\PartnerController::class);
Route::resource('/profile', App\Http\Controllers\partner\ProfileController::class);
Route::resource('/file', App\Http\Controllers\partner\FileController::class);
});
// HERE: you add the named route you need
Route::get(
'/file/download',
[App\Http\Controllers\partner\FileController::class, 'download']
)->name('file.download');
CodePudding user response:
When using Route::resource() the only accessible methods to the controller are index, create, store, show, edit, update and delete.