связь между файлами таблицы и книги таблицы laravel - PullRequest
0 голосов
/ 26 сентября 2018

У меня есть несколько книг по миграции, пользователей, категорий, авторов и файлов

я создал сводную таблицу для книг и файлов, таблицу "book_file":

 public function up()
    {
        Schema::create('book_files', function (Blueprint $table) {
            $table->increments('id');
            $table->unsignedInteger('book_id');
            $table->unsignedInteger('file_id');

            $table->foreign('book_id')
                ->references('id')
                ->on('books')
                ->onDelete('cascade')
                ->onUpdate('cascade');


            $table->foreign('file_id')
                ->references('id')
                ->on('files')
                ->onDelete('cascade')
                ->onUpdate('cascade');

            $table->timestamps();
        });
    }

и код модели книги:

public function files(){
        return $this->belongsToMany(File::class,'files','book_files');
    }

Код модели файла:

    protected $fillable = [
        'name',
    ];



    public function books()
    {
        return $this->belongsTo(Book::class);
    }

BookController:

    public function create()
    {
        $categories = Category::all();
        $authors = Author::all();
        $files= File::all();
        return view('books.create', compact('categories','authors','files'));
    }

    public function store(Request $request)
    {
        $this->validate($request,
            [
                'name'=>'required|string|max:256',
                'pages'=>'required|integer|numeric',
                'ISBN'=>'required|string|numeric',
                'price'=>'required|integer|numeric',
                'published_at'=>'required|date|date',
                'file'=>'required',

            ]
        );


        if ($request->hasFile('file')) {
            $filename = $request->file('file')->getClientOriginalName();
            $request->file->storeAs('public', $filename);
            $file = new File;
            $file->name = $filename;

            $file->save();

        }

            $book =  Auth::User()->books()->create($request->except('_token'));
        $book->categories()->attach($request->get('category_id'));
        $book->authors()->attach($request->get('author_id'));
        $book->files()->attach($request->get('file_id'));
        return redirect('/books');
    }

загрузка файлов в базу данных работает верно, но моя сводная таблица (book_file) не работаетменять!что случилось?Я новичок в Laravel, пожалуйста, помогите, спасибо.

...