Laravel 5.1:如何在单独的 table 上获取

Laravel 5.1: how to fetch on separate table

我想在我的 blade 中获取只有上传该文件的用户才能查看的上传数据,如 pdf、jpg、png 等。上传的文件位于与用户 table 不同的 table 中,但它有一个外键,即 user_id.

这是我的控制器:

public function store() {

        $file = Request::file('filefield');
        $extension = $file->getClientOriginalExtension();
        Storage::disk('local')->put($file->getFilename().'.'.$extension,  File::get($file));
        $entry = new Fileentry();
        $entry->mime = $file->getClientMimeType();
        $entry->original_filename = $file->getClientOriginalName();
        $entry->filename = $file->getFilename().'.'.$extension;
        $entry->description = Request::input('description');

        $entry->user_id = Auth::user()->id;

        $entry->save();

        return redirect('fileentry');


}

public function show($filename){


    $entry = Fileentry::where('filename', '=', $filename)->firstOrFail();
    $file = Storage::disk('local')->get($entry->filename);

    return (new Response($file, 200))
          ->header('Content-Type', $entry->mime);

}

这是我的 blade.php:

@foreach($entries as $entry)

    <div class="col-md-2">
        <div class="thumbnail"> 
            <table>

                <img src="{{route('getentry', $entry->filename ) }}" alt="ALT NAME" class="img-responsive" />

                     <p>{{ $entry->description }} </p>
                     <p>{{ $entry->user_id }} </p>
                     <p>{{ $entry->description }} </p>

                     <a href="{{ URL::to('download') }}" download="{{ $entry->original_filename }}">{{ $entry->original_filename }}</a>

            </table>

        </div>
    </div>

@endforeach

如果你们能帮助我,我会很高兴。

为什么不使用

简单地获取数据
Auth::user()->id ? 

所以在你的情况下:

$Files = Fileentry::where('user_id',Auth::user()->id)->get();

在您的用户模型中创建以下方法:

public function files() {
    return $this->hasMany('App\Fileentry')
}

如果文件条目位于其他位置,您可以更改其模型。

那么,在您看来,您可以执行以下操作:

@foreach($user->files as $file)
    {{ $file->description }}
@endforeach

有关关系的更多信息在 documentation