отношения многие ко многим в одной таблице Laravel - PullRequest
0 голосов
/ 17 сентября 2018

Я сделал несколько проверок и не нашел рабочего решения.Так что сценарий есть.У меня есть таблица (пользователи) и таблица (файлы) и другая сводная таблица (file_user).В таблице пользователей у меня есть администратор, который имеет уникальный идентификатор.Этот администратор может делиться своими файлами с остальными членами этой таблицы.Я хотел бы сохранить соответствующие файлы для тех людей, с которыми он делится.Проблема в том, что в таблице file_user сохранен только идентификатор администратора, другой - пустой.Может кто-нибудь дать мне несколько советов по этому вопросу

У меня пока есть этот код

public function create( )
{
    if (Auth::user()->isAdmin()){
        $view = view('backend.auth.file.create');
        $view->doctypes = Doctype::all()->pluck('name','id')           
        $view->users = User::all()->pluck('first_name','id')            
        $view->folders = Folder::pluck('name', 'id');

        return $view;
    } else {

         $view = view('backend.auth.file.create');
         $view->doctypes = Doctype::where('org_id', Auth::id())->pluck('name','id');            
         $view->users = User::where('org_id', Auth::id())->pluck('first_name','id');                
         $view->folders = Folder::pluck('name', 'id')
         return $view;
    }
}

Это функция сохранения файла в FileController.php

public function store(StoreFileRequest $request)
{

        $dataToBeSaved = $request->all();
        $dataToBeSaved['description'] = strip_unsafe_tags($dataToBeSaved['description']);
        $file = $request->file('path');
        $destinationPath = 'uploads/files';
        $dataToBeSaved['path'] = $request->file('path')->store($destinationPath, 'public');
        $file = File::create($dataToBeSaved);
        $users = array_where($request->get('users'), function ($value) {
            return ($value);
        });
        $file->users()->sync($users);
        return redirect()->route('admin.auth.file.index');
}

Это модель File.php

protected $table = 'files';
protected $fillable = ['name','description','path','org_id',];
public function users()
{
    return $this->belongsToMany(User::class, 'file_user', 'file_id', 'user_id');
}

Это модель User.php

/**
 * @return mixed
 */
public function files(){
    return $this->belongsToMany(File::class, 'file_id');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...