Rumah  >  Soal Jawab  >  teks badan

Laravel - Sifat model kekal NULL dalam pangkalan data walaupun selepas penciptaan

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粉015402013P粉015402013211 hari yang lalu267

membalas semua(2)saya akan balas

  • P粉342101652

    P粉3421016522024-02-26 15:22:21

    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

    balas
    0
  • P粉864872812

    P粉8648728122024-02-26 11:14:31

    Anda perlu nyatakan

    protected $rules

    boleh guna

    $this->validate()

    balas
    0
  • Batalbalas