Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何指定要从“急加载”中加载的列_Php_Laravel_Eloquent_Eloquent Relationship - Fatal编程技术网

Php 如何指定要从“急加载”中加载的列

Php 如何指定要从“急加载”中加载的列,php,laravel,eloquent,eloquent-relationship,Php,Laravel,Eloquent,Eloquent Relationship,我使用的是beyondcode/laravel comments(),我试图指定我想从评论员那里得到的专栏。代码如下: $comment = $post->comments()->with('commentator', function ($query) { $query->select('commentator.name', 'commentator.email'); //or $query->select('users.name', '

我使用的是beyondcode/laravel comments(),我试图指定我想从评论员那里得到的专栏。代码如下:

$comment = $post->comments()->with('commentator', function ($query) {
        $query->select('commentator.name', 'commentator.email');
        //or $query->select('users.name', 'users.email');
})->latest();
我得到的错误是这样说的

Undefined table: 7 ERROR:  missing FROM-clause entry for table "commentator" // or users
我怎样才能修好它?谢谢,只需按如下方式进行快速加载即可指定列,无需函数:

$comment=$post
->评论()
->带('评论员:id、姓名、电子邮件')
->最新的();
如果确实需要使用回调来更改急切加载,则必须使用如下所示的数组:

$comment=$post
->评论()
->使用(['commentor'=>函数($query){
$query->select('id','name','email');
}])
->最新的();

请注意,当您急于加载特定列时,应始终运行
id
(“评论员:id,name,email”)。这些代码返回502个坏网关,没有任何来自服务器的日志。也许我错过了什么?@Cutis,这似乎不太可能;502通常是PHP-FPM的一个问题。我在想,也许我的软件包有问题,我会将你的答案标记为接受,因为它有助于我处理自己的laravel关系。非常感谢@miken32请不要只发布代码作为答案,还要解释代码的作用以及它如何解决问题。带有解释的答案通常更有帮助,质量更好,更容易吸引选票。
$comment = $post->comments()->with('commentator:primary_key,your_column_name')->latest();