【发布时间】:2015-12-23 12:17:39
【问题描述】:
我在运行 MAMP 服务器(所以 apache)的笔记本电脑上运行了以下代码。在我的系统上它工作得非常好,然而,当我将它推送到我的服务器时,它开始抛出“试图获取非对象错误的属性。数据库和迁移都是最新的,并反映我的笔记本电脑上的设置。我想知道为什么这会发生在我的服务器上而不是我的笔记本电脑上。它似乎也是随机发生的,这让我认为这可能是缓存问题?
foreach($posts as $post){
$user = User::where("id","=",$post->posted_by)->first();
$response['posts'][] = [
'id' => $post->id,
'username' => $user->username, //causes problem
'firstname' => $user->name, //causes problem
'lastname' => $user->lastname, // causes problem
'images' => $post->getPostImages(),
'title' => $post->title,
'content' => $post->content,
'price' => $post->price,
'category' => Category::find($post->category_id)->title //causes problem
];
}
【问题讨论】:
-
帖子的
posted_by属性是外键吗?您确定所有posted_by用户都存在吗? -
你没有任何 $user !所以 dd($user) 来检查一下!
-
@watcher 虽然你的回答不是我的确切问题,但这是一般的想法。我发现类别没有正确发布并且缺少数据库 ID。感谢您的评论
-
我建议始终检查事物是否存在,所以只需检查
if($post)。这是一个很好的工作习惯。
标签: php laravel nginx laravel-4