0

我有表用户、部门、文件和共享文件。我想写一个查询,当用户尝试向另一个用户发送文件时,共享函数应该捕获文件的标题和发送文件的用户的部门,这些文件将保存在 shareFiles 表中。

  • 用户表:id,department_id
  • 文件表:id, title,user_id
  • 部门表:id,name
  • ShareFiles 表:title, file, department_id, user_id, sender,to

以下是我在分享功能中所做的

public function shareFile(Request $request)
    {

        $userfile = new UserFile();
        $userfile->sender = \Auth::user()->username;
        $userfile->to = $request->user;
        $userfile->title = File::select('title')->where(['user_id' => \Auth::user()->id])
        ->orWhere('id','=','user_id')->get();

        $userfile->department = DB::table('departments')->select('departments.name')
        ->join('users','departments.id','=','users.department_id')
        ->where(['users.id' => \Auth::user()->id])
        ->get();

        $userfile->user_id = \Auth::user()->id;
        $userfile->save();
        Session::flash('message','File successfully shared !!');
        return redirect('/hr/document');
    }
4

1 回答 1

0

试试这个代码: -

For title selection:

$file = File::select('title')->where(['user_id' => \Auth::user()->id]) ->orWhere('id','=','user_id')->first();

For Department:

$dept = DB::table('departments')->select('departments.name') ->join('users','departments.id','=','users.department_id') ->where(['users.id' => \Auth::user()->id]) ->first();

注意:您还可以使用 value() 和 pluck()(以防您需要值数组)而不是 select()。

于 2018-07-12T10:19:09.563 回答