Laravel 1 Flashcards
Cómo se crea un proyecto en laravel con composer?
En la terminal:
composer create-project laravel/laravel nombre-del-proyecto
Qué es artisan?
Es una linea de comandos creada para poder trabajar con laravel. Nos da comandos pre-establecidos. Para usarla siempre se pone php antes.
Ej. en la terminal:
php artisan comando-a-usar
Cómo hacemos para ejecutar el server con artisan?
php artisan serve
Cómo funcionan las vistas (views) con Laravel?
Laravel usa blade:
Es un motor de plantillas que permite abrir directivas en vez de <?php ?> en el html.
Estas directivas funcionan entre bloques del tipo
@if(condicion) codigo @endif
y entre {{}} para imprimir cosas:
<h2> {{ $obj->name }} </h2>
Dónde se encuentras las rutas (routes) de mi aplicación?
Se encuentran en la carpeta “routes” en el archivo web.php
Cómo hacemos para usar en model desde el controlador?
Arriba de todo hay que poner:
use App\Models\Category;
y despues para usarlo tengo que llamarlo con mayuscula (en este ejemplo haría Category) y para usar un método de la clase de ese objeto lo llamo con :: (doble dos puntos).
Ejemplo:
Quiero un array de todas las categorias, entonces hago:
$categories = Category::all();
y ahora tengo un array de todas las categorias en $category.
Cómo levanta el router un request y que necesita para hacerlo?
1) Primero necesito llamar arriba a los controllers y al Router. Eso lo hago así:
use Illuminate\Support\Facades\Route; use App\Http\Controllers\TodosController; use App\Http\Controllers\CategoriesController;
2)Después uso Route y llamo al método que requiero. Por ejemplo un get y le paso la ruta que va a pedir desde el navegador, el controller que tiene que usar y le pongo name en el caso de que en la applicación le de un nombre distino a la ruta.
Route::get('/tareas', [TodosController::class, 'index'])->name('todos');
Qué es cada parte de la siguiente linea de código del router?
Route::get(‘/tareas’, [TodosController::class, ‘index’])->name(‘todos’);
Route : : get ( ‘/tareas’, [ TodosController : : class, ‘index’ ] ) -> name( ‘todos’ );
1) Usa el Router y su método estático get
2) Los parametros que se le pasan son
- La ruta que se pasa desde la url
- Un array con el controller y separado por coma, el método del controller a usar.
- el name indicando que en la app se lo llama por la ruta ‘todos’.
Cómo se hace una plantilla para rellenarla con contenido?
Se hace una view por ejemplo app.blade.php
En esa view se hace el html y en la parte donde quiero que se le inyecte contenido pongo @yield(‘content’)
Para usar esa plantilla hago otra view y desde ella llamo a app poniendo al principio del archivo
@extends(‘app’)
Luego pongo @section(‘content’) y entre esa directiva y su fin ( @endsection ) pongo el contenido de ese archivo.
Ej.
@extends(‘app’)
@section(‘content’)
<div>Hola</div>
@endsection
Cómo haces en el router si queres retornar directamente un vista?
Router::get ( ‘/todos’ , function ( ){
return view ( ‘todos.index’);
}
Entonces retorna la vista index que está en la carpeta todos dentro de las views.
Qué son las migraciones?
Las migraciones en la Laravel son como un control de versiones de la base de datos, las cuales nos permiten gestionar de una mejor manera los cambios que se van realizando con el tiempo.
Permiten definir y aplicar cambios en la estructura de la base de datos de forma ordenada y sencilla.
Es lo que usamos en la base de datos en vez de queries.
Hacen referencia a un control de versiones para nuestra base de datos.
Se usan como una capa de abstracción llamada eloquent.
Qué es un ORM?
Object Relational Mapper: un mapeador relacional de objetos.
Un ORM es un modelo de programación que permite mapear las estructuras de una base de datos relacional.
Qué te permite hacer eloquent?
Eloquent es un ORM que nos facilita el contacto de nuestra aplicación en Laravel con una base de datos relacional donde solo tendremos que hacer un llamado al modelo de la entidad que se necesita y empezar a operar sobre ella desde el controlador.
Tener una relación entre nuestras tablas y nuestros modelos.
Cómo se crea un nuevo modelo con su respectiva tabla?
1) Si todavia no la cree, creo la db en mysql. (CREATE DATABASE ejemplo) y la agrego en .env donde dice DB_DATABASE=nombre-de-mi-db
2) En la terminal:
php artisan make:model Nombre-del-modelo -m
el -m es de migration. Es para que cuando cree el modelo también cree su migración.
3)voy a la carpeta database busco la de migrations en el proyecto y busco el archivo que tiene fecha_create_todos_table
En ese archivo agrego los campos que necesita mi tabla en la public function up.
Ejemplo:
public function up() { Schema::create('todos', function (Blueprint $table) { $table->id(); $table->string('title'); $table->timestamps(); }); }
Defino de esa manera si el campo es string, o integer etc.
4) Por último voy a la terminal y corro la migración:
php artisan migrate
Si me equivoqué en en mi tabla y ya hice la migración, como hago para deshacer la migración y corregir mi error?
corro en la terminal:
php artisan migrate:rollback
eso deshace la migración y puedo y me permite hacer los cambio que necesite y despues volver a correrla.
Donde están los controllers en el proyecto?
App=>Http=>Controllers
Cómo creo un controlador?
php artisan make:controller TodosController
atención que se pone en plural xq TodosController, CategoriesController, …etc.
Cuál es la convención de nombres para los métodos en Laravel?
index -> para mostrar todos los elementos
store -> para guardar un elemento
update -> para actualizar un elemento
destroy -> para eliminar un elemento
edit -> para mostrar el formulario de edición