赛派号

脸干痒用什么护肤品好一点 Laravel Tutorial => Making a Model

Example Model creation

Model classes must extend Illuminate\Database\Eloquent\Model. The default location for models is the /app directory.

A model class can be easily generated by the Artisan command:

php artisan make:model [ModelName]

This will create a new PHP file in app/ by default, which is named [ModelName].php, and will contain all the boilerplate for your new model, which includes the class, namespace, and using's required for a basic setup.

If you want to create a migration file along with your Model, use the following command, where -m will also generate the migration file:

php artisan make:model [ModelName] -m

In addition to creating the model, this creates a database migration that is hooked up to the model. The database migration PHP file is located by default in database/migrations/. This does not--by default--include anything other than the id and created_at/updated_at columns, so you will need to edit the file to provide additional columns.

Note that you will he to run the migration (once you he set up the migration file) in order for the model to start working by using php artisan migrate from project root

In addition, if you wish to add a migration later, after making the model, you can do so by running:

php artisan make:migration [migration name]

Say for example you wanted to create a model for your Cats, you would he two choices, to create with or without a migration. You would chose to create without migration if you already had a cats table or did not want to create one at this time.

For this example we want to create a migration because we don't already he a table so would run the following command.

php artisan make:model Cat -m

This command will create two files:

In the App folder: app/Cat.php In the database folder: database/migrations/timestamp_creat_cats_table.php

The file we are interested in is the latter as it is this file that we can decide what we want the table to look like and include. For any predefined migration we are given an auto incrementing id column and a timestamps columns.

The below example of an extract of the migration file includes the above predefined columns as well as the addition of a the name of the cat, age and colour:

public function up() { Schema::create('cats', function (Blueprint $table) { $table->increments('id'); //Predefined ID $table->string('name'); //Name $table->integer('age'); //Age $table->string('colour'); //Colour $table->timestamps(); //Predefined Timestamps }); }

So as you can see it is relatively easy to create the model and migration for a table. Then to execute the migration and create it in your data base you would run the following command:

php artisan migrate

Which will migrate any outstanding migrations to your database.

Model File Location

Models can be stored anywhere thanks to PSR4.

By default models are created in the app directory with the namespace of App. For more complex applications it's usually recommended to store models within their own folders in a structure that makes sense to your apps architecture.

For example, if you had an application that used a series of fruits as models, you could create a folder called app/Fruits and within this folder you create Banana.php (keeping the StudlyCase naming convention), you could then create the Banana class in the App\Fruits namespace:

namespace App\Fruits; use Illuminate\Database\Eloquent\Model; class Banana extends Model { // Implementation of "Banana" omitted } Model configuration

Eloquent follows a "convention over configuration" approach. By extending the base Model class, all models inherit the properties listed below. Unless overridden, the following default values apply:

PropertyDescriptionDefaultprotected $connectionDB connection nameDefault DB connectionprotected $tableTable nameBy default, the class name is converted to snake_case and pluralized. For example, SpecialPerson becomes special_peopleprotected $primaryKeyTable PKidpublic $incrementingIndicates if the IDs are auto-incrementingtruepublic $timestampsIndicates if the model should be timestampedtrueconst CREATED_ATName of the creation timestamp columncreated_atconst UPDATED_ATName of the modification timestamp columnupdated_atprotected $datesAttributes that should be mutated to DateTime, in addition to the timestamps attributes[]protected $dateFormatFormat in which date attributes will be persistedDefault for current SQL dialect.protected $withRelationships to eagerload with model[]protected $hiddenAttributes omitted in model serialization[]protected $visibleAttributes allowed in model serialization[]protected $appendsAttribute accessors added to model serialization[]protected $fillableAttributes that are mass-assignable[]protected $guardedAttributes that are black-listed from mass assignment[*] (All attributes)protected $touchesThe relationships that should be touched on se[]protected $perPageThe number of models to return for pagination.15 5.0 PropertyDescriptionDefaultprotected $castsAttributes that should be casted to native types[]

PDF - Download Larel for free Previous Next

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lsinopec@gmail.com举报,一经查实,本站将立刻删除。

上一篇 没有了

下一篇没有了