Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/286.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

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 Laravel 5模型链接_Php_Laravel_Laravel 5 - Fatal编程技术网

Php Laravel 5模型链接

Php Laravel 5模型链接,php,laravel,laravel-5,Php,Laravel,Laravel 5,假设A、B、C、D是模型。有没有一种方法可以像这样清晰地链接模型:a->b()->c()->d()->get()?当尝试这样做时,我得到一个错误,因为a->b()、b->c()和c->d()都是返回集,而不是单个对象 有些人建议在其他网站上快速加载,但我不知道如何使用它们。到目前为止,我已经尝试使用a->load('b.c.d')希望将所有模型加载到“a”,但它不起作用 如何将所有相关型号b、c和d加载到a?您可以使用 $v = a->with('b.c.d')->get(); 然

假设A、B、C、D是模型。有没有一种方法可以像这样清晰地链接模型:
a->b()->c()->d()->get()?当尝试这样做时,我得到一个错误,因为a->b()、b->c()和c->d()都是返回集,而不是单个对象

有些人建议在其他网站上快速加载,但我不知道如何使用它们。到目前为止,我已经尝试使用
a->load('b.c.d')
希望将所有模型加载到“a”,但它不起作用

如何将所有相关型号b、c和d加载到a?

您可以使用

$v = a->with('b.c.d')->get();
然后你可以在你的代码中这样使用

$v->b->c->d

请说明这些关系是如何定义的。这并不重要,有很多关系。有些是一对多,有些是多对多,等等。@alaboudi这就是你需要的。考虑到任何类型(1-m,m-m)的关系,没有其他方法可以满足您的要求。上面的示例是否允许我在a->b->c->d为空的情况下访问a->b?或者with()是否意味着整个“a”模型数组从a->b->c->d返回了所有可以调用的对象?我只需要解释with()的作用。在laravel文档中找不到此项。即使a->b->c->d为空,也可以通过此项访问a->b。“a”的整个数组将急切地加载“b”的整个模型,b的整个模型将急切地加载“d”的整个模型。查看此链接以了解有关快速加载的更多信息。