Laravel 5.2 Query在localhost上工作正常,而不是在远程服务器上

时间:2016-10-01 06:12:41

标签: php mysql laravel model-view-controller laravel-5.2

我的控制器中有一个逻辑可以在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。

2 个答案:

答案 0 :(得分:1)

@Anand Naik B,你可以ssh到你的ec2实例并尝试PHP工匠修补程序,看看$blog_post->ID是否包含对调用表的引用。我认为这是您查看生产的最快方式之一。

答案 1 :(得分:0)

我认为它与数组对象有关。你能告诉我们dd($blog_posts)结果吗?

尝试:

$blog_post[0]->ID

$blog_post['ID']