5. Observers
3 comentarios
Inicia sesión para comentar
Comentarios:
-
Fernando Noe Marquez Garcia hace 1 semana
Para los que trabajamos en laravel 11 podemos hacer lo siguiente:
#### Forma 1. ####
Vamos a la ruta de app\Providers\AppServiceProvider.php
public function boot(): void { Article::observe(ArticleObserver::class); //Agregar }
#### Forma 2. ####
Vamos al modelo Article.php y agregamos
use App\Observers\ArticleObserver; //Agregar use Illuminate\Database\Eloquent\Attributes\ObservedBy; //Agregar #[ObservedBy([ArticleObserver::class])] //Agregar
Quedaria de la siguiente manera
<?php namespace App\Models; use App\Observers\ArticleObserver; //Agregar use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; use Illuminate\Database\Eloquent\Attributes\ObservedBy; //Agregar #[ObservedBy([ArticleObserver::class])] //Agregar class Article extends Model { use HasFactory; protected $fillable = [ 'title', 'content', 'user_id', 'is_published', 'sort' ]; //Relacion uno a muchos inversa public function user(){ return $this->belongsTo(User::class); } }
Siempre pueden ver la documentacion ✌️
-
José Pablo Casanueva Bórquez hace 7 meses
Buenas estoy trabajando con Laravel 11, dentro de los providers no tengo el que menciona en el video, solo tengo 3 quem son: AppServiceProvider, FortifyServiceProvider y JetstreamServiceProvider. En donde deberia registrar el observer ?
-
Pablo Luciano hace 7 meses
Me pasa lo mismo
-
José Pablo Casanueva Bórquez hace 7 meses
3 semanas y ninguna respuesta, muy malo el soporte de estos cursos.
-
Victor Arana Flores hace 6 meses
Hola, primero disculpar por la demora.
Los observers en Laravel 11 se registra de la siguiente manera:
Dirigete al modelo, en la parte de arriba agrega la siguiente definicion
use Illuminate\Database\Eloquent\Attributes\ObservedBy;
y luego lo registras de esta manera
#[ObservedBy([UserObserver::class])] class User extends Authenticatable { // }
Esto sería todo
-
Mitz hace 6 meses
<?php
namespace App\Models;
use App\Models\User;
use App\Observers\ArticleObserver;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Attributes\ObservedBy;
#[ObservedBy([ArticleObserver::class])]
class Article extends Model
{
use HasFactory;
//Asignacion masiva bd
protected $fillable = ['title', 'content', 'user_id','is_published','sort'];
//Relacion uno a muchos inversa con usuario
public function user(){
return $this->belongsTo(User::class);
}
}
-
-
Jean Gaspar Gracia Gonzalez hace 1 año
en el error del minuto 4:08 a pesar de haber creado el observer cuando corro la migracion con el seeder me da este error SQLSTATE[23502]: Not null violation: 7 ERROR: el valor nulo en la columna «sort» de la relación «users» viola la restricción de no nulo, tuve que irme al factory para crear una variable estática donde pueda llevar la cuenta de los registros creados static $sort = 1; y en el return 'sort' => $sort++, para asigna el valor de la variable y luego ir incrementando. Porque no me funciono solamente creando el observer?
-
Daniel Mendez Amutari hace 3 meses
yo pensaba hacer lo mismo. pero como se explica en el video el observer toma ese valor y va aumentando por cada registro.
me tarde en hacerlo correr pero no por el cambio que hay en laravel 11 sino porque en ves de poner = puse un -
en fin en laravel 11 lo que se esta haciendo es que aiga menos archivos y simplificarlo. a lo que entendi en la documentacion.
-