Laravel - Sifat model kekal NULL dalam pangkalan data walaupun selepas penciptaan
P粉015402013
P粉015402013 2024-02-25 19:07:40
0
2
330

Saya mempunyai model yang dipanggil Artikel yang mengandungi tiga sifat: 'tajuk', 'sari kata' dan 'badan', ia berfungsi dengan sempurna tetapi empat lajur ditambahkan pada model ('sari kata2', 'badan2', 'sari kata3' dan 'badan3 '), lajur yang baru ditambah kekal kosong selepas mencipta artikel. Jelas saya kehilangan sesuatu, tetapi saya tidak dapat mengetahui apa.

Ini adalah penghijrahan:

public function up()
{
    Schema::table('articles', function (Blueprint $table) {
        $table->string('subtitle2')->nullable()->default(null);
        $table->text('body2')->nullable()->default(null);
        $table->string('subtitle3')->nullable()->default(null);
        $table->text('body3')->nullable()->default(null);
        
    });
}

Selepas penghijrahan, saya mengedit app/Http/Models/Article.php dan ia kelihatan seperti ini:

protected $fillable = [
    'title',
    'subtitle',
    'body',
    'subtitle2',
    'body2',
    'subtitle3',
    'body3',

];

Ini apl saya/Http/Livewire/CreateArticle.php

class CreateArticle extends Component
{
use WithFileUploads;

public $title;
public $subtitle;
public $body;
public $category;

public $subtitle2;
public $body2;

public $subtitle3;
public $body3;

public $temporary_images;
public $images = [];

public $article;
    
    
    public function store()
    {
        $this->validate();

        
        $this->article = Category::find($this->category)->articles()->create($this->validate());
        
        $this->article->user()->associate(Auth::user());
        $this->article->save();
        
        if(count($this->images)){
            foreach($this->images as $image){
                $newImage = $this->article->images()->create(['path'=>$image->store('images', 'public')]);
                
                dispatch(new ResizeImage($newImage->path, 600, 400));
            }
            
        }          
}

Akhir sekali, saya menambah baris ini pada borang:

{{-- INSERT SUBTITLE 2 --}}
    
    <div class="mb-3">
        <label for="subtitle2" class="form-label">第二段副标题</label>
        <input type="text" wire:model="subtitle2" class="form-control" id="subtitle2">
       
    </div>
    
    
    {{-- INSERT PARAGRAPH 2 --}}
    
    <div class="mb-3">
        <label for="body2" class="form-label">第二段</label><br>
        <textarea class="form-control" wire:model="body2" id="body2" cols="30" rows="3"></textarea>
    </div>
    
    
    {{-- INSERT SUBTITLE 3 --}}
    
    <div class="mb-3">
        <label for="subtitle3" class="form-label">第三段副标题</label>
        <input type="text" wire:model="subtitle3" class="form-control" id="subtitle3">
        
    </div>
    
    
    {{-- INSERT PARAGRAPH 3 --}}
    
    <div class="mb-3">
        <label for="body3" class="form-label">第三段</label><br>
        <textarea class="form-control" wire:model="body3" id="body3" cols="30" rows="3"></textarea>
    </div>

dd($this); mengembalikan kandungan berikut

Tinker menunjukkan semua lajur

P粉015402013
P粉015402013

membalas semua(2)
P粉342101652

Anggap dd();imej yang anda berikan adalah terkini. Saya dapat melihat bahawa lajur baru tidak wujud dalam pangkalan data. ('subtitle2', 'body2', 'subtitle3' dan 'body3') Semua ini tidak tersedia dalam senarai. Jadi saya rasa anda terlupa untuk menjalankan arahan migrasi

php artisan migrate
P粉864872812

Anda perlu nyatakan

protected $rules

boleh guna

$this->validate()
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan