Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 在laravel中从数据库检索和显示单个记录_Php_Laravel_Laravel 5 - Fatal编程技术网

Php 在laravel中从数据库检索和显示单个记录

Php 在laravel中从数据库检索和显示单个记录,php,laravel,laravel-5,Php,Laravel,Laravel 5,我的控制器中有两种方法。第一个名为uploads,它显示DB表中的所有记录,如下所示: public function uploads() { //return Upload::all(); $uploads = Upload::all(); return view('uploads')->with('uploads',$uploads); } Route::get('/uploads', function ()

我的控制器中有两种方法。第一个名为
uploads
,它显示DB表中的所有记录,如下所示:

 public function uploads()
    {
        //return Upload::all();
        $uploads = Upload::all();
        return view('uploads')->with('uploads',$uploads);
    }
    Route::get('/uploads', function () {
    return view('uploads');
});

Auth::routes();
Route::get('/uploads','UploadController@uploads')->name('uploads');
此功能正在运行,并且在我的视图中成功检索到所有记录

问题在于第二种方法
upload
,其目的是在上载列表中单击单个上载的名称时显示该上载的数据

目前,我只有以下几点:

 public function upload($id)
{
    return Upload::find($id);
}
我不知道如何完成这个功能

我的观点是这样的:

 @extends('layouts.app')
@section('content')
    <h1>Uploads</h1>
    @if(count($uploads)>0)
@foreach($uploads as $upload)
    <div class="well">
        <h3><a href="/uploads/{{$upload->id}}">{{$upload->name}}</a> </h3>
        <small>Written on {{$upload->created_at}}</small>
    </div>
        @endforeach
    @else
    <p>No uploads found</p>
    @endif

@endsection

有人能帮我做这件事吗?我只想在单击上载的名称时看到与数据库中的记录关联的数组。在我看来,我需要在路由中添加哪些内容?

好的,试试这样的方法

public function upload($id)
{ 
  $uploads = Upload::find($id);

  return view('uploads')
    ->with('uploads', $uploads);
}
在你的刀刃上

@extends('layouts.app')

@section('content')
   <h1>Uploads</h1>
   @if(is_array($uploads) and count($uploads) > 0)
      @foreach($uploads as $upload)
        <div class="well">
          <h3><a href="/upload/{{$upload->id}}">{{$upload->name}}</a> </h3>
          <small>Written on {{$upload->created_at}}</small>
        </div>
      @endforeach
   @else
     <div class="well">
       <h3><a href="/uploads/{{$uploads->id}}">{{$uploads->name}}</a> </h3>
       <small>Written on {{$uploads->created_at}}</small>
     </div>
   @endif

@endsection
或者,您可以创建一个单独的刀片,对于单个视图,假设刀片的名称为upload.blade.php而不是uploads.blade.php,以便更清楚地了解文件名和用途

// Controller
public function uploads()
{
    $uploads = Upload::all();
    return view('uploads')->with('uploads', $uploads);
}
您可以在此处使用Laravels IOC容器,并让Laravel在控制器操作中传递正确的上载

public function showUploadDetail(Upload $upload)
{
    return view('uploadDetail')->with('upload', $upload);
}
创建一个名为
uploadDetail.blade.php
的新刀片文件,其中包含以下示例内容:

@extends('layouts.app')

@section('content')
   <h1>Upload Detail</h1>
   <p>ID: {{ $upload->id }}</p>
@endsection

您没有指定在web.php中显示单个记录的路径

Web.php

因此,只需将以下路径添加到web.php

Route::get('/uploads/{upload_id}','UploadController@upload')->name('single.upload');
使用UploadController中的以下功能更改上载功能: 此函数用于检索上载记录并将该记录返回到视图:

控制器

并创建名为view\u upload.blade.php的刀片文件,以显示单个选定的上载。

@extends('layouts.app')

@section('content')
   <h1>Upload Detail</h1>
   <p>ID: {{ $upload->id }}</p>
   //Following Line Display all the Record.
   // var_dump($upload);
@endsection
@extends('layouts.app'))
@节(“内容”)
上传详细信息
ID:{{$upload->ID}

//下一行显示所有记录。 //var_dump($upload); @端部
那么目标是什么?只在upload()方法上显示一个?是的,在相同的文件名upload.blade.php上显示相应的idOn?我在上面写过:upload函数的目的是在uploads函数显示的上载列表中单击单个上载的名称时显示其数据。谢谢回答。我尝试了它,但它给了我这个错误:(2/2)ErrorException试图获取非对象的属性(视图:C:\xampp\htdocs\logoss\resources\views\uploads.blade.php),您可以使用类似{dump($uploads)}的东西来查看实际传递的内容
Route::get('/uploads/{upload_id}','UploadController@upload')->name('single.upload');
public function upload($upload_id)
{
    $upload= Upload::find($upload_id);
    //var_dump($upload);   //Un-comment this line to show full Returned Data
    return view('view_upload',compact('upload'));
}
@extends('layouts.app')

@section('content')
   <h1>Upload Detail</h1>
   <p>ID: {{ $upload->id }}</p>
   //Following Line Display all the Record.
   // var_dump($upload);
@endsection