Creado en: 2023-09-04 19:12:07
Actualizado en: 2024-08-27 16:03:10
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:
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