Mostrando entradas con la etiqueta Controllers. Mostrar todas las entradas
Mostrando entradas con la etiqueta Controllers. Mostrar todas las entradas

Crear un controller con todas los métodos del CRUD

php artisan make:controller admin/FileController -r
OJO: La carpeta admin se crea sola.

Para generar todas las ruta del CRUD:
NOTA: en las views sí que se tiene que crear a mano las subcarpetas (por ejemplo: admin)
// ojo: para los crud es names (en plural)
Route::resource('/admin/files', 'admin\FileController')->names('admin.files');

Para ver todas las rutas creadas:
php artisan r:l

Pasar un array de un controller a una vista

public function galeria() {
$cineastas = ["Robert donat", "James Stewart", "Gary Cooper", "James Cagney"];
return view("galeria", compact("cineastas"));
}

Y en galeria.blade.php:
@section("cuerpo")
    @if (count($cineastas))
        <table width="90%" border=1>
            @foreach ($cineastas as $item)
                <tr><td>{{$item}}</td></tr>
            @endforeach
        </table>
    @endif
@endsection

Controllers: Ejemplo de pasar los arrays a la vista

public function show_pelicula($slug_pelicula) {
$arrPel = DB::table('peliculas')
->where("slug", "=", $slug_pelicula)
->get();

if (isset($arrPel[0]->id)) {
$id_pelicula = $arrPel[0]->id;

$arrOscPel = DB::table('historial')
->join('cineastas', 'cineastas.id', '=', 'historial.id_cineasta')
->join('peliculas', 'peliculas.id', '=', 'historial.id_pelicula')
->join('categorias', 'categorias.id', '=', 'historial.id_categoria')
->select('peliculas.titulo as titPelicula', 'peliculas.foto_pelicula','cineastas.foto_cineasta', 'cineastas.nombre as nomCineasta')
->where('premiado','=','O')
->where('id_pelicula','=',$id_pelicula)
->orderby('id_categoria')
->get();

$arrNomPel = DB::table('historial')
->join('cineastas', 'cineastas.id', '=', 'historial.id_cineasta')
->join('peliculas', 'peliculas.id', '=', 'historial.id_pelicula')
->join('categorias', 'categorias.id', '=', 'historial.id_categoria')
->select('peliculas.titulo as titPelicula', 'peliculas.foto_pelicula','cineastas.foto_cineasta', 'cineastas.nombre as nomCineasta')
->where('premiado','=','N')
->where('id_pelicula','=',$id_pelicula)
->orderby('id_categoria')
->get();

// dd($arrOscPel);
return view('front.show_pelicula', compact('arrPel','arrOscPel', 'arrNomPel'));
    }
}

Parámetros opcionales en los métodos del controller

// solo $anno es obligatorio para pasar
public function show_anno($anno, $id_categ = null, $otro = null) {
...
}

En el enrutamiento (en routes/web.php) será: Route::get('front/show_anno/{anno}/{id_categ?/otro?}', 'front\AnnosController@show_anno')->name('show_anno');

Controllers

php artisan make:controller UserController

Crear un controlador con todos los métodos del CRUD y sus urls de acceso:
php artisan make:controller --resource DosController También se puede hacer más fácil con:
php artisan make:controller DosController -r
Y luego para generar automáticamente todas esas rutas del CRUD en el routes/web.php:
Route::resource('/dos', 'DosController');