A煤n no tienes acceso a esta clase

Crea una cuenta y contin煤a viendo este curso

Curso de PHP con Laravel

Curso de PHP con Laravel

H茅ctor Benitez

H茅ctor Benitez

Trabajando con un Modelo

11/25
Recursos
  • No es aconsejable modificar una migraci贸n ya que si estamos trabajando en equipo alguien puede haber ya corrido la migraci贸n con anterioridad y esto le causar铆a conflictos. Lo aconsejable es crear una migraci贸n adicional.
  • El comando migrate:fresh lo reinicia todo incluyendo la base de datos y los elementos creados.

Aportes 29

Preguntas 3

Ordenar por:

驴Quieres ver m谩s aportes, preguntas y respuestas de la comunidad? Crea una cuenta o inicia sesi贸n.

Para crear la columna title despu茅s de la columna 鈥榠d鈥 y que est茅 mejor estruturado:

$table->text(鈥榯itle鈥)->after(鈥榠d鈥);

Por eso odio las versiones de Laravel, despu茅s te salen con el siguiente error a la hora de hacer lo que el maestro hace y no sabes por que.

Este error salio:

Symfony\Component\Debug\Exception\FatalThrowableError  : syntax error, unexpected ':', expecting ',' or ')'

Pero claro que despu茅s de un rato el batallar por que revisar el c贸digo del maestro y el tuyo y es igual.

Pero la bronca es la versi贸n de Laravel el cual modifica ciertos detalles como lo que encontr茅 para que funcionara.

Codigo del maestro:

$table->text( column: 'title' );

Mi c贸digo

$table->text( 'title' );

Se quita el column:, el 2 puntos marca el error. Por si alguien le salio mal.

驴Utilizamos tinker porque a煤n no tenemos creado una UI?

Si estas trabajando en la version 6 de laravel, ya no es necesario poner columns dentro de los par茅ntesis
laravel#creandocolumnas

 public function up()
    {
        Schema::table('expense_reports', function (Blueprint $table) {
            $table->text('title');
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::table('expense_reports', function (Blueprint $table) {
            $table->dropColumn('title');
        });
    }

Adem谩s de los tipos de columna, hay varios 鈥渕odificadores鈥 de columna que se pueden utilizar al a帽adir una columna a una tabla de base de datos. Por ejemplo, para hacer que la columna 鈥渢itle鈥 est茅 despu茅s de la columna 鈥渋d鈥, debes utilizar el siguiente m茅todo:

$table->text('title')->after('id');

En lugar de escribir:

App\Models\expenseReport::all();

Podemos escribir:

$report::all();

Esto debido a que ya habiamos almacenado en la variable $report una instancia de la clase ExpenseReport.

Si est谩n utilizando postgres 10, en vez de mysql, tuve el siguiente error.

   Illuminate\Database\QueryException  : SQLSTATE[23502]: Not null violation: 7 ERROR:  column "title" contains null values 
(SQL: alter table "expense_reports" add column "title" text not null)

Lo resolv铆 anexando:

$table->text('title')->nullable();

Por si gustan intentar con postgres.

Apuntes:
Las migraciones practicamente nunca las modificamos, practicamente lo que hacemos es agregar una migracion adicional haciendo referencia a la tabla a la que vamos a realizar la modificacion, de esta forma si alguien ya corri贸 la primera migracion que hacia referencia a dicha tabla, con el nuevo env铆o, se va a realizar la modificacion. Para ello podemos escribir algo como lo siguiente:
php artisan make:migration create_column_title_in_reports --table=expense_reports
De esta manera, al notificar mediante el comando, que vamos a trabajar sobre una tabla, veremos espacios en los respectivos metodos de migracion del archivo creado para trabajar sobre ellos.

Les comparto el link actualizado con la documentaci贸n de Eloquent:
https://laravel.com/docs/7.x/eloquent

Estoy estancado hace varios d铆as en esta lecci贸n, al utilizar tinker tengo errores como este PHP Warning: Creating default object from empty value in Psy Shell code on line 1
Alguna soluci贸n?

Hasta el momento todo va perfecto, se siente muy bien cuanto todo sale a la primera

Es hermoso que todo funcione a la primera

excelente para comenzar con lo b谩sico de migraciones

Para poder colocar la columna 鈥榯itle鈥 despues de la columna 鈥榠d鈥 y asi tener una mejor estructura coloquen esto:

$table->text('title')->after('id');

Excelente clase

Excelente los modelos las migraciones

Notas:

  • Cada vez que queramos modificar algo en las migraciones es preferible crear una antes de modificar una existente haciendo referencia a la modificacion que vamos a realizar siguiendo la sintaxis de el comando make:migration -help

Tip del mentor: No edites de forma directa la migraci贸n, crea una nueva con la informaci贸n, para as铆 cuando se corran las migraciones todo el equipo pueda correr las migraciones que hagan falta

trabajando con migraciones.

muy buenos dias, yo utilizo postgres, a la hora de crear el la clumna 鈥榯itle鈥 lo hago con varchar pero sale un error, solo me deja con text, que debo hacer para seguir con varchar, gracias!

Les comparto los comandos usados con tinker:

php artisan tinker
Psy Shell v0.10.4 (PHP 7.4.2 鈥 cli) by Justin Hileman
>>> $report = new App\ExpenseReport();
=> App\ExpenseReport {#3028}
>>> $report->title = 'Vacaciones';
=> "Vacaciones"
>>> $report->save();
=> true
>>> App\expenseReport::all();
=> Illuminate\Database\Eloquent\Collection {#3753
     all: [
       App\ExpenseReport {#3752
         id: 1,
         created_at: "2020-05-18 20:04:15",
         updated_at: "2020-05-18 20:04:15",
         title: "Vacaciones",
       },
     ],
   }

Se puede crear una migraci贸n con todas las columnas que quiero definir en mi base de datos, o habr铆a que crear una migraci贸n por cada columna que se quiera a帽adir?

Todo va saliendo muy bien , excelente explicaci贸n.

Algunas veces me cuestiono el porque hacen tan complicado algo que a travez de muchos a帽os se normalizo a nivel grafico.Y si, yo se que el manejo de comandos es de anta帽o y demuestra el nivel de conocimiento del profesional para nunca quedarce barado, pero pues hasta eso tiene solucion con los instrumentos portables 鈥 Bueno es solo un concepto de mi parte.

Que gustoso se siente cuando tu base de datos agrega sin ning煤n problema cada informaci贸n, despu茅s de haber pasada media hora viendo el tipo de cada dato que incluye Eloquent.

hola a alguien le sali贸 este error

$report = new App\ExpenseReport();
PHP Fatal error: Class 鈥楢pp/ExpenseReport鈥 not found in Psy Shell code on line 1

y esto se puede hacer para una bd ya existente en produccion y que no borre los datos?

El m茅todo down siempre es la acci贸n contraria a la que se hace en el m茅todo up, esto es porque cuando hacemos un rollback, Laravel accede al m茅todo down para hacer el rollback correctamente. Es por eso que siempre es necesario e importante tenerlo programado:D!

![](
Alguien con este problema? stackoverflow me dice que actualice a la versi贸n 6 o 7.