【问题标题】:Laravel 8: Trying to get property 'id' of non-objectLaravel 8:试图获取非对象的属性“id”
【发布时间】:2021-03-24 17:00:01
【问题描述】:

我正在尝试在其他父文件夹中显示子文件夹和文件(例如 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

有人可以帮忙吗?

【问题讨论】:

    标签: laravel-8


    【解决方案1】:

    当您通过 url 绑定数据并且可以是可选的时,您必须使用“?”符号,否则 $url = null 始终为 null

    Route::get('folders-materials/{url?}', [App\Http\Controllers\TeamsController::class, 'folderMaterialAdminUrl']);
    

    https://laravel.com/docs/8.x/routing#parameters-optional-parameters 就像我看到的那样,如果您将它用于从数据库中检索,则不需要将空值分配给 $url 绑定参数。只是

    public function folderMaterialAdminUrl(Request $request, $url) {
         $teams = Team::where('url', $url)->first();
    

    【讨论】:

      猜你喜欢
      • 2021-03-27
      • 1970-01-01
      • 2021-05-26
      • 2020-06-26
      • 2018-07-03
      • 2021-06-04
      • 1970-01-01
      • 2019-03-27
      • 2020-10-21
      相关资源
      最近更新 更多