Laravel 8에 기본 Eloquent 모델 값을 추가하는 방법은 무엇입니까?
7748 단어 laraveljavascripttutorialphp
이 게시물에서는 Laravel 8에서 기본 eloquent 모델 값을 추가하는 방법에 대한 예를 공유합니다. 레코드를 저장할 때마다 자동으로 추가되는 모델 필드 값의 기본값을 추가하려는 경우.
이것은 모델 인스턴스를 생성할 때 기본값을 추가할 수 있는 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 속성을 사용하여 모델에 기본값을 정의할 수 있습니다.
다음은 기본 eloquent 모델 값을 추가하는 예입니다.
<?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',
];
//...
}
이제 기본값을 사용하거나 사용하지 않고 코드를 테스트해 보겠습니다.
우리의 route/web.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>';
}
});
첫 번째 모델 생성에서 볼 수 있듯이 값과 함께 body 속성만 전달했지만 두 번째 모델 생성에서는 각 값과 함께 제목과 본문을 포함했습니다.
결과는 다음과 같습니다.
모델에서 정의된 기본값을 사용하여 첫 번째 줄 결과를 볼 수 있습니다. 두 번째는 수동으로 추가되었습니다.
이 튜토리얼이 도움이 되었으면 합니다. 이 코드를 다운로드하려면 여기https://codeanddeploy.com/blog/laravel/how-to-add-default-eloquent-model-values-on-laravel-8를 방문하십시오.
행복한 코딩 :)
Reference
이 문제에 관하여(Laravel 8에 기본 Eloquent 모델 값을 추가하는 방법은 무엇입니까?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/codeanddeploy/how-to-add-default-eloquent-model-values-on-laravel-8-4k82텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)