سلام.
من یه پروژه لوکال برای تمرین کردن درست کردم و از لایووایر هم در پروژه استفاده کردم.
این ارور { 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
لطفا اگر مشکلی هست ، من رو کمک بدید🤝
سلام وقت بخیر
ویژگی های titleCompany فراخوانی کن
یا میتونه مشکل از livewire باشه که هست
یه سری به این لینک بزن
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟