Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- SeriesController.php
- <?php
- namespace App\Http\Controllers;
- use App\Serie;
- use App\Services\CriadorDeSerie;
- use Exception;
- use Illuminate\Http\Request;
- class SeriesController extends Controller
- {
- public function index(Request $request)
- {
- //echo $request->url(); exit();
- // $series = ['Lost', 'Agents of Shield'];
- // $html = "<ul>";
- // foreach ($series as $serie) {
- // $html .= "<li>$serie</li>";
- // }
- // $html .= "</ul>";
- $series = Serie::query()->orderBy('nome')->get();
- $mensagem = $request->session()->get('mensagem');
- return view('series.index', compact('series', 'mensagem'));
- }
- public function create()
- {
- return view('series.create');
- }
- public function store(Request $request, CriadorDeSerie $criadorDeSerie)
- {
- $serie = $criadorDeSerie->criarSerie($request->nomeSerie, $request->numerotemporadas, $request->numeroepisodios);
- $request->session()->flash("mensagem", "Série {$serie->nome} com suas temporadas e episódios criada com sucesso!");
- return redirect('/series');
- exit();
- }
- public function destroy(Request $request)
- {
- try {
- echo $request->id;
- Serie::destroy($request->id);
- $request->session()->flash("mensagem", "Série excluída com sucesso!");
- return redirect('/series');
- exit();
- } catch (Exception $e) {
- echo "Erro: " . $e->getMessage() . "\n";
- echo "Linha: " . $e->getLine();
- }
- }
- }
- CriadorDeSerie.php
- <?php
- namespace App\Services;
- use App\Serie;
- class CriadorDeSerie
- {
- public function criarSerie(string $nomeSerie, int $numeroTemporadas, int $numeroEpisodios)
- {
- $serie = Serie::create(['nome' => $nomeSerie]);
- $numeroTemporadas = $numeroTemporadas;
- for ($i = 1; $i <= $numeroTemporadas; $i++) {
- $temporada = $serie->temporadas()->create(['numero' => $i]);
- for ($j = 1; $j <= $numeroEpisodios; $j++) {
- $temporada->episodios()->create(['numero' => $j]);
- }
- }
- return $serie;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement