/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Requests\AddSongRequest $request) { /* cases: add track walang artist, walang album / may artist, walang album add lang talaga */ //Start of Inserting a music //Start here. //dd($request->get('name')); //else{ //dd(\Auth::user()->id); $track = new Track(array('name' => $request->get('name'), 'creator_id' => \Auth::user()->id)); $track->save(); flash()->overlay('Track uploaded.', 'Success!'); //https://www.codetutorial.io/laravel-5-file-upload-storage-download/ $fileName = $track->id . '.' . $request->file('image')->getClientOriginalExtension(); $path = base_path() . '/public/tracks/' . $fileName; $request->file('image')->move(base_path() . '/public/tracks/', $fileName); //dd($path); $path = '/public/tracks/' . explode("/", $path)[sizeof(explode("/", $path)) - 1]; //get value at last element //dd($path); DB::table('tracks')->where('id', $track->id)->update(['path' => $path]); //song is now uploaded and has filePath //dd($request->get('artist_name')); //getting an artist $artist = DB::table('artists')->where('name', $request->get('artist_name'))->first(); //dd($artist); //} if ($artist) { //artist exists $artistHasSong = new ArtistHasSong(array('artist_id' => $artist->id, 'track_id' => $track->id)); $artistHasSong->save(); $album = DB::table('albums')->join('albums_has_artist', 'albums_has_artist.album_id', '=', 'albums.id')->select('albums_has_artist.*')->where('albums_has_artist.artist_id', '=', $artist->id)->where('albums.name', '=', $request->get('album_name'))->first(); /* select * from albums_has_artist a inner join albums b on a.albumId = b.albumId where a.artist_id = $artist->id and b.name= $request->get('album_name') */ //dd($album); if ($album) { //track and album exist and artist exist $albumHasSong = new AlbumHasSong(array('album_id' => $album->id, 'track_id' => $track->id)); $albumHasSong->save(); return redirect()->back(); // return view('track.create', // ['message'=>'Track Created']); } else { //album does not exist but artist and track exists // return redirect('/album/create') // ->with(['track_id' => $track->id, 'artist_name' => NULL, // 'artist_id' => $artist->id, 'album_name' => $request->get('album_name')]); return view('album.create', ['track_id' => $track->id, 'artist_name' => NULL, 'artist_id' => $artist->id, 'album_name' => $request->get('album_name')]); } } else { //track exist now(); artist does not exist //to do on artist store artists has song: //to do on album store album has artist and album has song //dd($request->get('artist_name')); if ($request->get('artist_name') != NULL) { // return redirect('/artist/create') // ->with(['artist_name' => $request->get('artist_name'), 'track_id' => $track->id, // 'track_name' => $track->name, 'album_name' => $request->get('album_name')]); return view('artist.create', ['artist_name' => $request->get('artist_name'), 'track_id' => $track->id, 'track_name' => $track->name, 'album_name' => $request->get('album_name')]); } else { // return redirect('/album/create') // ->with(['artist_name' => $request->get('artist_name'), 'artist_id' => NULL, // 'track_id' => $track->id, 'album_name' => $request->get('album_name')]); return view('album.create', ['artist_name' => $request->get('artist_name'), 'artist_id' => NULL, 'track_id' => $track->id, 'album_name' => $request->get('album_name')]); } } }
/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Requests\AddAlbumRequest $request) { //check album has artist $artist_id = (int) $request->get('artist_id'); //dd($artist_id); $album_name = $request->get('name'); //dd($album_name); $album = DB::select(DB::raw("select albums_has_artist.album_id as album_id,\n albums_has_artist.artist_id as artist_id\n from albums_has_artist\n inner join albums on albums_has_artist.album_id = albums.id\n \n where albums_has_artist.artist_id = {$artist_id} and\n albums.name = '{$album_name}'")); /*$album = DB::table('albums_has_artist') ->join('albums', 'albums_has_artist.album_id', '=', 'albums.id') ->select('albums_has_artist.*') ->where('albums_has_artist.artist_id', '=', $request->get('artist_id')) ->where('albums.name', '=', $request->get('album_name')) ->first(); */ //dd(!$album); if (!$album) { //bagong album $album = new Album(array('name' => $request->get('name'), 'recording_company' => $request->get('recording_company'), 'year_released' => $request->get('year_released'))); $album->save(); //may album na flash()->overlay('Album added!', 'Success!'); } /* if ( $request->get('artist_id')===NULL && $request->get('artist_name')===NULL && $request->get('album_name')===NULL && $request->get('track_id')==="" ) { return view('album.create', ['message'=>"Album Created", 'artist_name' => NULL, 'artist_id' => NULL, 'track_id' => NULL, 'album_name' => NULL]); } */ if ($request->get('artist_id')) { //existing artist, bagong album $albumsHasArtist = new AlbumsHasArtist(array('album_id' => $album->id, 'artist_id' => (int) $request->get('artist_id'))); $albumsHasArtist->save(); } else { //bagong artist, existing album $artist = DB::table('artists')->where('name', $request->get('artist_name'))->first(); //dd($artist); if ($artist) { $albumsHasArtist = new AlbumsHasArtist(array('album_id' => $album->id, 'artist_id' => $artist->id)); $albumsHasArtist->save(); } } if ($request->get('track_id')) { //mag-on na si album at song $albumHasSong = new AlbumHasSong(array('album_id' => $album->id, 'track_id' => (int) $request->get('track_id'))); $albumHasSong->save(); //return redirect('track/create'); return view('track.create'); //, // ['message'=>"Album Created"]); } return redirect('/album/create')->with(['track_id' => NULL, 'artist_id' => NULL, 'artist_name' => NULL, 'album_name' => NULL]); // return view('album.create', // ['track_id' => NULL, // 'artist_id' => NULL, // 'artist_name' => NULL, // 'album_name' => NULL]); }