我使用的是Laravel 10,我已经制作了一个名为pages
的表,其中存储了网站的所有静态页面字段数据.
下表如下:
现在,为了检索此数据,我在控制器中添加了以下内容:
use App\Repositories\PageRepository;
use App\Models\Page;
class MainPagesController extends Controller
{
protected $pageRepository;
public function __construct(PageRepository $pageRepository)
{
$this->pageRepository = $pageRepository;
}
public function home()
{
$homeInfo = $this->pageRepository->getPageByType('home');
return view('admin.pages.main.home', compact('homeInfo'));
}
}
因此,我创建了一个名为PageRepository.php
的存储库,如下所示:
namespace App\Repositories;
use App\Models\Page;
class PageRepository
{
public function getPageByType(string $pageType)
{
return Page::where('pag_type', $pageType)->first();
}
public function getPageByName(string $pageName)
{
return Page::where('pag_name', $pageName)->first();
}
}
所以它看起来很好很完美,但在刀锋,当我这样做的时候:
@dd($homeInfo->where('pag_name', 'hero_image')->first()->pag_value)
我得到了这个错误:
Attempt to read property "pag_value" on null个
但是,带有hero_image
的pag_name
已经有一个名为layer.png
的值,其他pag_name
也会出现此错误!
那么,这里出了什么问题呢?我怎么才能解决这个问题呢?