我的控制器中有一个逻辑可以在localhost上正常工作,但返回'尝试获取非对象的属性'在生产服务器上。
其中一个查询行返回' null',但在localhost上似乎没有问题。在这种情况下,我在localhost和production上使用相同的sql转储。
这是我的欢迎控制器
class WelcomeController extends Controller
{
public function index(){
$blog_posts = DB::connection('mysql_wp')->table('wp_posts')->where('post_type', 'post')->where('post_status', 'publish')->orderBy('post_date', 'DESC')->take(3)->get();
foreach($blog_posts as $key => $blog_post){
$post = DB::connection('mysql_wp')->table('wp_posts')->where('post_type', 'attachment')->where('post_status', 'inherit')->where('post_parent', $blog_post->ID)->orderBy('post_date', 'DESC')->first();
//some more logic
}
return view('welcome', ['blog_posts' => $blog_posts]);
}
}
所以在这里我将$ post作为null,这是我的进一步逻辑所依赖的。 无法弄清楚问题是什么。
我正在使用Linux EC2实例进行生产。 帮助赞赏。 TIA。
答案 0 :(得分:1)
@Anand Naik B,你可以ssh到你的ec2实例并尝试PHP工匠修补程序,看看$blog_post->ID
是否包含对调用表的引用。我认为这是您查看生产的最快方式之一。
答案 1 :(得分:0)
我认为它与数组对象有关。你能告诉我们dd($blog_posts)
结果吗?
$blog_post[0]->ID
或
$blog_post['ID']