راکت
حل شده

ارور در لاراول

1 پاسخ

سلام.
من یه پروژه لوکال برای تمرین کردن درست کردم و از لایووایر هم در پروژه استفاده کردم.
این ارور { Attempt to read property titleCompany on null } در صفحه ادمین این پروژه به من نمایش داده میشه:

Attempt to read property "titleCompany" on null

درواقع من اطلاعات فوتر صفحه اصلی پروژه رو گرفتم. درواقع Label های فوتر رو کپی کردم و در دیتابیس ، در یک جدول ذخیره کردم : اما زمانی که در صفحه ادمین اقدام به دریافت مقادیر میکنم ، این ارور نمایش داده میشه : درحالی که من همین کار هم در صفحه اصلی پروژه انجام دادم اما مقادیر به درستی نمایش داده میشه.
کد صفحه ادمین :

<?php

namespace App\Http\Livewire\Admin\Footer;

use App\Models\Admin\Footer\Footer;
use Illuminate\Support\Facades\DB;
use Livewire\Component;

class Titles extends Component
{
    public $titleCompany, $titleLabel1, $titleLabel2, $titleLabel3, $titleAddress, $titlePhone, $titleEmail, $titleSubscribe, $textSubscribe, $buttonSubscribe, $titleCopyright, $titleDesignedBy;
    public Footer $footer;

    public function __construct()
    {
        $footer = DB::table('footers')->first();
        // Variable
        $this->titleCompany = $footer->titleCompany;
        $this->titleLabel1 = $footer->titleLabel1;
        $this->titleLabel2 = $footer->titleLabel2;
        $this->titleLabel3 = $footer->titleLabel3;
        $this->titleAddress = $footer->titleAddress;
        $this->titlePhone = $footer->titlePhone;
        $this->titleEmail = $footer->titleEmail;
        $this->titleSubscribe = $footer->titleSubscribe;
        $this->textSubscribe = $footer->textSubscribe;
        $this->buttonSubscribe = $footer->buttonSubscribe;
        $this->titleCopyright = $footer->titleCopyright;
        $this->titleDesignedBy = $footer->titleDesignedBy;
    }

    public function render()
    {
        return view('livewire.admin.footer.titles');
    }

    public function update()
    {
        $footer = DB::table('footers')->limit(1);

        // Validation
        $this->validate([
            'titleCompany' => 'required',
            'titleLabel1' => 'required',
            'titleLabel2' => 'required',
            'titleLabel3' => 'required',
            'titleAddress' => 'required',
            'titlePhone' => 'required',
            'titleEmail' => 'required',
            'titleSubscribe' => 'required',
            'textSubscribe' => 'required',
            'buttonSubscribe' => 'required',
            'titleCopyright' => 'required',
            'titleDesignedBy' => 'required',
        ]);

        // Update
        $footer->update([
            'titleCompany' => $this->titleCompany,
            'titleLabel1' => $this->titleLabel1,
            'titleLabel2' => $this->titleLabel2,
            'titleLabel3' => $this->titleLabel3,
            'titleAddress' => $this->titleAddress,
            'titlePhone' => $this->titlePhone,
            'titleEmail' => $this->titleEmail,
            'titleSubscribe' => $this->titleSubscribe,
            'textSubscribe' => $this->textSubscribe,
            'buttonSubscribe' => $this->buttonSubscribe,
            'titleCopyright' => $this->titleCopyright,
            'titleDesignedBy' => $this->titleDesignedBy
        ]);

    }
}

این هم کد صفحه اصلی پروژه:

<?php

namespace App\Http\Livewire\Home\Layouts;

use Illuminate\Support\Facades\DB;
use Livewire\Component;

class Footer extends Component
{
    public function render()
    {
        $footer = DB::table('footers')->first();
        return view('livewire.home.layouts.footer', compact('footer'));
    }
}

fillable هم در مدل مربوطه مشخص کردم :

protected $fillable = [
        'titleCompany',
        'titleLabel1',
        'titleLabel2',
        'titleLabel3',
        'titleAddress',
        'titlePhone',
        'titleEmail',
        'titleSubscribe',
        'textSubscribe',
        'buttonSubscribe',
        'titleCopyright',
        'titleDesignedBy',
    ];

نسخه لاراول پروژه:

Laravel Framework 10.4.1

لطفا اگر مشکلی هست ، من رو کمک بدید🤝

ثبت پرسش جدید

پاسخ‌ها

1
Arshiamohammadei
Arshiamohammadei
@Arshiamohammadei

تخصص: وب و هوش مصنوعی

بهترین پاسخ

سلام وقت بخیر
ویژگی های titleCompany فراخوانی کن
یا میتونه مشکل از livewire باشه که هست
یه سری به این لینک بزن

شاید پاسخ شما همین‌جا باشد

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام