crear model controlador i migracio per Watercolor:

crear model controlador i migracio de Watercolor:

 
crear model controlador i migracio de Watercolor:

php artisan make:model Watercolor -mcr

editar model:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Watercolor extends Model
{
    use HasFactory;
	protected $fillable = array('img', 'nom', 'dimensions', 'any', 'theme', 'autor', 'url');
}

editar controlador utilitzant el model eloquent Watercolor:

<?php

namespace App\Http\Controllers;

use App\Models\Watercolor;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;

class WatercolorController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        $watercolor = Watercolor::all()->sortByDesc("updated_at");    
		return view('watercolor.index', compact('watercolor'));
    } 

La funció index()que ha mostrat és un mètode d'un controlador en Laravel que realitza una consulta a la base de dades per obtenir tots els registres de la taula associat amb el model Watercolor. Vamos a desglosar la consulta per entendre-la millor:

  1. Watercolor::all():
    • Esta part de la consulta utilitza el model Eloquent Watercolor per obtenir tots els registres de la taula corresponent a la base de dades. El mètode all()és una forma ràpida de recuperar tots els registres sense cap condició.
  2. ->sortByDesc("updated_at"):
    • Després d'obtenir tots els registres, la col·lecció resultant es ordena de manera descendente ( sortByDesc) per la columna updated_at. Això significa que els registres més recentment actualitzats apareixeran primer.
    • És important notar que sortByDescés un mètode de les col·leccions de Laravel, no una consulta de base de dades. L'ordenació es realitza després de recuperar els registres de la base de dades, el que és eficient per a conjunts de dades petits però pot ser ineficient per a conjunts de dades grans.
  3. return view('watercolor.index', compact('watercolor')):
    • Finalment, la funció devuelve una vista ( watercolor.index) i passa la col·lecció ordenada de registres d' Watercoloraquesta vista. La funció compactés una manera sencilla de crear un array que conté les variables i els seus noms com a claus.

Consideracions de Rendiment

Si la taula Watercolorté molts registres, aquesta forma d'ordenar les dades després de recuperar-los tots no poden ser molt eficients. En el seu lloc, seria més eficient realitzar l'ordenació directament a la consulta de base de dades, especialment per a conjunts de dades grans:

$watercolor = Watercolor::orderBy('updated_at', 'desc')->get(); 

En aquest cas, orderBy és un mètode del Query Builder de Laravel i get()recupera els registres i ordenats directament de la base de dades.

editar migracio:


<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; return new class extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('watercolors', function (Blueprint $table) { $table->integer('id')->unsigned()->autoIncrement(); $table->string('img', 255); $table->string('nom', 255); $table->string('dimensions', 255)->nullable()->default(NULL); $table->string('any', 255)->nullable()->default(NULL); $table->string('theme', 255); $table->string('autor', 255)->nullable()->default(NULL); $table->string('url', 255)->nullable()->default(NULL); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('watercolors'); } };

executar la migracio:

php artisan migrate