Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/56.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 多对多(属于多个)拉维关系不';我似乎无法在HHVM下工作_Php_Mysql_Laravel_Many To Many_Relationships - Fatal编程技术网

Php 多对多(属于多个)拉维关系不';我似乎无法在HHVM下工作

Php 多对多(属于多个)拉维关系不';我似乎无法在HHVM下工作,php,mysql,laravel,many-to-many,relationships,Php,Mysql,Laravel,Many To Many,Relationships,MySQL表: 帖子 标签 post_标记(带有post_id和tag_id列) //Post.php模型 班上的帖子很有说服力{ 受保护的$table='posts'; public$timestamps=true; 受保护的$guarded=['id']; 公共函数标签() { 返回$this->belongstomy('Tag'); } } //Tag.php模型 类标记扩展了雄辩的{ 受保护的$table='tags'; public$timestamps=false; 受保护的$gua

MySQL表: 帖子 标签 post_标记(带有post_id和tag_id列)

//Post.php模型
班上的帖子很有说服力{
受保护的$table='posts';
public$timestamps=true;
受保护的$guarded=['id'];
公共函数标签()
{
返回$this->belongstomy('Tag');
}
}
//Tag.php模型
类标记扩展了雄辩的{
受保护的$table='tags';
public$timestamps=false;
受保护的$guarded=['id'];
公共职能职位()
{
返回$this->belongtomany('Post');
}
}
//关于routes.php
路由::获取('/',函数()
{
$post=post::find(44);
echo$post.“
”; $tag=tag::find(28); echo$tag; 返回$post->tags; });
当点击/它打印post:44时,它打印tag:28并给出

ErrorException不能将标量值用作数组

访问Post.php tags()函数中的tags属性时。 请记住,在post_tag的表中有一个post_id=44和tag_id=28的条目,但它可以是空的。 Laravel/php在尝试访问belongToMany('Tag')方法时给了我这个错误


我做错了什么?

我认为您需要使用即时加载:

$post = Post::with('tag')->find(28);
我面前没有一个laravel装置可供测试。因此,
find
可能无法链接,因此您可能需要执行以下操作:

$post = Post::with(array('tag' => function($query)
{
    $query->where('id', '=', 44);
}))->get();

应该在2月更新时修复:

我一直在进一步研究框架代码中的问题,发现如果我改为这样纠正关系,它会起作用:public function tags(){return$this->belongsToMany('Tag',null,null,null,'anythis not null');}嘿,HHVM准备好进入黄金时段了吗?这是HHVM的问题。在拉雷维尔,这是显而易见的多对多。应该是开箱即用的。我忘了我用的是hvm而不是php。到目前为止,它碰巧不适用于所有情况。
$post = Post::with(array('tag' => function($query)
{
    $query->where('id', '=', 44);
}))->get();