どのようにLaravel 8にデフォルトのElququentモデル値を追加するには?


もともとhttps://codeanddeploy.com訪問し、サンプルコードをダウンロードしてください
この記事では、Laravel 8にデフォルトのモデル値を追加する方法の例を共有します.レコードを保存するたびに自動的に追加されるモデルフィールド値の既定値を追加する場合.
これは、モデルインスタンスを作成するときにデフォルト値を追加することができますLaravelのクールな機能の一つです.これは、我々のモデルに余分なパラメータを渡す必要がないので、我々のコードをきれいにするのを助けるのに非常に役に立ちます、しかし、それは自動的に付属します.
以下の例を使用して、移行を最初に作成しますが、スキップできます.
<?php

use Illuminate\Database\Migrations\Migration;
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;

class CreatePostsTable extends Migration
{
    /**
     * Run the migrations.
     *
     * @return void
     */
    public function up()
    {
        Schema::create('posts', function (Blueprint $table) {
            $table->id();
            $table->string('title');
            $table->string('description')->nullable();
            $table->text('body');
            $table->timestamps();
        });
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists('posts');
    }
}
$ attributesプロパティを使用すると、既定値をモデルに定義できます.
以下はデフォルトのモデル値を追加する例です.
<?php

namespace App\Models;

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

class Post extends Model
{
    //...

    /**
     * The model's default values for attributes.
     *
     * @var array
     */
    protected $attributes = [
        'title' => 'Default Title',
    ];

    //...
}
では、デフォルトでコードを試してみましょう.
我々のルート/ウェブで.PHPは以下のコードを追加しました.これはテスト目的のみです.
<?php

use App\Models\Post;
use Illuminate\Support\Facades\Route;

/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/

Route::get('/', function () {

    Post::create([
        'body' => 'post body'
    ]);

    Post::create([
        'title' => 'Manually title',
        'body' => 'post body'
    ]);

    $posts = Post::all();

    foreach($posts as $post) {
        echo 'title: '. $post->title . ', body: ' . $post->body . '<br>';
    }
});
最初のモデルの作成で見ることができるように、我々は値で体属性を渡すだけです、しかし、第2のモデル創造で、我々は各々の値でタイトルと体を含みました.
以下に結果を示します.
https://codeanddeploy.com/blog/laravel/how-to-add-default-eloquent-model-values-on-laravel-8
最初の行の結果は、モデルから定義された既定値を使用して確認できます.そして、2番目は手動で加えられました.
私はこのチュートリアルを助けることを望む.あなたがこのコードをダウンロードしたいならば、親切にをここで訪問してください.
ハッピーコーディング