我试图显示子文件夹和文件(如docx,pdf,png)在ο的父文件夹,但我得到这个错误“试图获得属性'id‘的非对象”。
这是我的路线:
Route::get('folders-materials/{url}', [App\Http\Controllers\TeamsController::class, 'folderMaterialAdminUrl']);这是我的控制器:
public function folderMaterialAdminUrl(Request $request, $url=null) {
$teams = Team::where('url', $url)->first();
$folders = Folder::where('url', $url)->first();
$subfolders = Subfolder::where('folder_id', $folders->id)->where('user_team',$teams->id)->orderBy('id', 'asc')->get();
$files = File::where('folder_upload', $folders->id)->orderBy('created_at', 'DESC')->get();
return view('adminsubfolderurl')->with(compact('teams','folders','subfolders','files'));
},这是我的刀片:
@foreach ($subfolders as $subfolder_admin)
<div class="col-xl-3 col-lg-4 col-md-4 col-sm-6 pt-5">
<a href="{{ url('subfolders/'.$subfolder_admin->url) }}" class="folder-link">
<i class="fas fa-folder d-flex justify-content-center m-auto"></i>
<div class="user-inf pt-4 text-center">
<h3>{{ $subfolder_admin->name }}</h3>
</div>
</a>
</div>
@endforeach
@foreach ($files as $file_admin)
<div class="col-xl-3 col-lg-4 col-md-4 col-sm-6 pt-5 file-col">
<a href="/{{ $file_admin->file }}" target="_blank" class="file-link">
<i class="far fa-image d-flex justify-content-center m-auto"></i>
<div class="user-inf pt-4 text-center">
<h3>{{ $file_admin->name }}</h3>
<p>{{ $file_admin->created_at }}</p>
</div>
</a>
</div>
@endforeach有人能帮忙吗?
发布于 2021-03-24 17:55:35
当您通过url绑定数据并且可以是可选的时,您必须使用'?‘符号,否则$url = null总是空的。
Route::get('folders-materials/{url?}', [App\Http\Controllers\TeamsController::class, 'folderMaterialAdminUrl']);正如我所看到的,如果您将https://laravel.com/docs/8.x/routing#parameters-optional-parameters用于从db检索,则不需要将空值赋值给$url绑定参数。只是
public function folderMaterialAdminUrl(Request $request, $url) {
$teams = Team::where('url', $url)->first();https://stackoverflow.com/questions/66785814
复制相似问题