Возникла проблема с сводной таблицей на Laravel - PullRequest
0 голосов
/ 10 февраля 2019

У меня есть форма с двумя сводными таблицами.Один из них работает просто отлично, но я не могу заставить второй работать, несмотря на то, что они очень похожи.Не работает для таблицы изображений под названием «фотографии» и для загрузки формы в «релизы».Я назвал сводную таблицу «photo_releases» с полями «photo_id» и «release_id».

Сводная таблица БД

вот выпуск Модальный

    class Release extends Model
    {
        public function photos()
        {
            return $this->belongsToMany('App\Photo', 'photo_releases', 'release_id', 'photo_id');
        }
    }

и фотомодальное

    class Photo extends Model
    {
        public function releases()
        {
            return $this->belongsToMany('App\Release', 'photo_releases', 'photo_id', 'release_id');
        }
    }

и ReleaseController

public function store(ReleasesCreateRequest $request)
    {
        $input = $request->all();

        $user = Auth::user();

        if ($file = $request->file('photo_01')) {
            $file_name = preg_replace("/[^a-zA-Z0-9.]/", "", $file->getClientOriginalName());
            $name = time() . 'photo_01' . $file_name;
            $file->move('images', $name);
            $input['photo_01'] = $name;
            $photo = new Photo();
            $photo->url = $input['photo_01'];
            $photo->save();
        }

        $release = Release::create($request->except('release_id'));

        dd($request->except('release_id'), $request->get('photo_id', []), $request->get('artiste_id', []));
        $release->photos()->attach($request->get('photo_id', []));
        $release->artistes()->attach($request->get('artiste_id', []));

        return redirect('/admin06000/releases');
    }

В этой функции используются две сводные таблицы.тот, который использует

"$ release-> artistes () -> attach ($ request-> get ('artiste_id', []));"

работает правильно, но фотографии - нет.URL-адрес регистрируется в правильной БД, и изображение загружается нормально, но сводная таблица не обновляется.Если кто-то может помочь, это будет очень полезно.

1 Ответ

0 голосов
/ 10 февраля 2019

попробуй Это, если тебе понадобится какой-то выбор в отношении смены корабля

 with('photos')


на

 with(['photos'=>function($query){$query->where(....)->get();}])...


 use Image;
 use Illuminate\Support\Facades\Input;
 ...
 public function store(ReleasesCreateRequest $request)
 {
             $input = $request->all();   
             $user = Auth::user();

             if ($file = $request->file('photo_01'))
             {
                 $image= Input::file('photo_01');
                 $name = time().'photo_01'.'.'.$image->getClientOriginalExtension();
                 $path=public_path('/YourPath/'.$name);
                 Image::make($image->getRealPath())->save($path);


                 $photo = new Photo();
                 $photo->url = '/YourPath/'.$name;
                 $photo->save();
             }

             $release = Release::create
             ([
              'release_field'=>$amount,
              'release_field2'=>$amount2,
               ....
             ]); 

             $release->with('photos')->with(artistes)->get();



         }```
...