首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Laravel 8:试图获取非对象的属性“id”

Laravel 8:试图获取非对象的属性“id”
EN

Stack Overflow用户
提问于 2021-03-24 17:00:01
回答 1查看 61关注 0票数 0

我试图显示子文件夹和文件(如docx,pdf,png)在ο的父文件夹,但我得到这个错误“试图获得属性'id‘的非对象”。

这是我的路线:

代码语言:javascript
复制
Route::get('folders-materials/{url}', [App\Http\Controllers\TeamsController::class, 'folderMaterialAdminUrl']);

这是我的控制器:

代码语言:javascript
复制
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'));
    }

,这是我的刀片:

代码语言:javascript
复制
@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

有人能帮忙吗?

EN

回答 1

Stack Overflow用户

发布于 2021-03-24 17:55:35

当您通过url绑定数据并且可以是可选的时,您必须使用'?‘符号,否则$url = null总是空的。

代码语言:javascript
复制
Route::get('folders-materials/{url?}', [App\Http\Controllers\TeamsController::class, 'folderMaterialAdminUrl']);

正如我所看到的,如果您将https://laravel.com/docs/8.x/routing#parameters-optional-parameters用于从db检索,则不需要将空值赋值给$url绑定参数。只是

代码语言:javascript
复制
public function folderMaterialAdminUrl(Request $request, $url) {
     $teams = Team::where('url', $url)->first();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66785814

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档