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
我想在我的 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