2015-12-17 3 views
0

Я хочу получить загруженные данные, такие как pdf, jpg, png и т. Д. В моем клиенте, которые могут просматривать только пользователи, которые загружали этот файл. Загруженный файл находился в отдельной таблице из таблицы пользователей, но у него есть внешний ключ, который является user_id.Laravel 5.1: как получить по отдельной таблице

Это мой контроллер:

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 

Я был бы рад, если бы вы, ребята, могли бы мне помочь.

+1

Пожалуйста, не размещать фрагменты кода в виде изображений. Скопируйте их вместо них. – totymedli

+0

Да, опубликуйте код, чтобы мы могли его легко скопировать при необходимости - изображения означают, что нам придется набирать все это. – James

+1

ладно, сэр, мне так жаль ... я сделаю это. – angel1108

ответ

1

Почему не просто получать данные с помощью

Auth::user()->id ? 

Так что в вашем случае:

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

Я уже сделал это, но я получил тот же результат, что и все данные из таблицы файловых столов T__T – angel1108

+0

Так вы используете аутентификацию? И получили несколько пользователей? Это работает только тогда, когда вы используете аутентификацию, и каждый пользователь получил свой «user» user_id. Тогда: Вы уверены, что у каждого другого пользователя есть свои «собственные» файлы? Зайдите в свою базу данных для поля «user_id» – derdida

+0

Да, я использую аутентификацию ... и все мои пользователи имеют свои собственные файлы ^^ – angel1108

0

В модели пользователя создайте следующий метод:

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

Вы можете изменить модель Fileentry, если она находится где-то в другом месте.

Затем, по вашему мнению, вы можете сделать следующее:

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

Больше информации об отношениях находится в documentation

+0

Я тоже это использовал ... спасибо ^^ – angel1108

Смежные вопросы