如何在Laravel中找到父母身份的孩子?

时间:2016-07-05 00:26:31

标签: php laravel

我已经阅读了Laravel 5.1的文档,但我找不到(或理解)一种方法来获得父母id的孩子。我可以使用这样的查询构建器来执行此操作:

<div class="container">
   <svg class="background-svg" width="100" height="300px" viewBox="0 0 400 300" version="1.1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
      <defs>
         <filter x="" y="-50%" width="200%" height="200%" filterUnits="objectBoundingBox" id="filter-1">
            <feOffset dx="0" dy="10" in="SourceAlpha" result="shadowOffsetOuter1"></feOffset>
            <feGaussianBlur stdDeviation="2" in="shadowOffsetOuter1" result="shadowBlurOuter1"></feGaussianBlur>
            <feColorMatrix values="0 0 0 0 0   0 0 0 0 0   0 0 0 0 0  0 0 0 0.095 0" in="shadowBlurOuter1" type="matrix" result="shadowMatrixOuter1"></feColorMatrix>
            <feOffset dx="0" dy="1" in="SourceAlpha" result="shadowOffsetInner1"></feOffset>
            <feGaussianBlur stdDeviation="1.5" in="shadowOffsetInner1" result="shadowBlurInner1"></feGaussianBlur>
            <feComposite in="shadowBlurInner1" in2="SourceAlpha" operator="arithmetic" k2="-1" k3="1" result="shadowInnerInner1"></feComposite>
            <feColorMatrix values="0 0 0 0 0.647959184   0 0 0 0 0.549016553   0 0 0 0 0.549016553  0 0 0 0.35 0" in="shadowInnerInner1" type="matrix" result="shadowMatrixInner1"></feColorMatrix>
            <feMerge>
               <feMergeNode in="shadowMatrixOuter1"></feMergeNode>
               <feMergeNode in="SourceGraphic"></feMergeNode>
               <feMergeNode in="shadowMatrixInner1"></feMergeNode>
            </feMerge>
         </filter>
      </defs>
      <g id="Page-1" stroke="none" stroke-width="1" fill="none" fill-rule="evenodd">
         <g id="Artboard-1" fill="#8B65E4">
            <path d="M187.785156,200 L180,232 L66,232 L58.2148437,200 L187.785156,200 Z" id="Rectangle-1" filter="url(#filter-1)"></path>
            <path d="M349.760339,49.1234675 L375.905579,277.733833 L199.999999,277.733834 L43.9648432,143.710938 L349.760339,49.1234675 Z" id="Triangle-1" filter="url(#filter-1)"></path>
            <path d="M399.8936,96.1889997 L29.4623426,250.140552 L0,36.4302476 L399.8936,96.1889997 Z" id="Triangle-2" filter="url(#filter-1)"></path>
            <foreignObject x="0%" y="0%" width="80%" height="100%"
               requiredExtensions="http://www.w3.org/1999/xhtml">
               <body xmlns="http://www.w3.org/1999/xhtml">
                  <div xmlns="http://www.w3.org/1999/xhtml">
                     <h1>
                        Words appear here on normal browsers but not on mobile devices
                     </h1>
                  </div>
               </body>
            </foreignObject>
         </g>
         <foreignObject x="20%" y="70%" width="80%" height="100%"
            requiredExtensions="http://www.w3.org/1999/xhtml">
            <body xmlns="http://www.w3.org/1999/xhtml">
               <div xmlns="http://www.w3.org/1999/xhtml">
                  <div class="box">
                     <a class="box-item" href="https://website.com/info" target="_blank">link</a>
                  </div>
               </div>
            </body>
         </foreignObject>
      </g>
   </svg>
</div>

但问题是它返回一个stdClass,我以后不能用它来更新belongsTo关系。 有人可以帮忙吗?

2 个答案:

答案 0 :(得分:0)

您可以在Eloquent模型

上使用where等查询构建器方法
  

由于Eloquent模型是查询构建器,因此您应该查看所有的   查询构建器上可用的方法。您可以使用其中任何一种   您的Eloquent查询中的方法。

https://laravel.com/docs/5.2/eloquent#retrieving-multiple-models

请参阅标题为添加其他约束的部分。

答案 1 :(得分:0)

不确定这是否是你所得到的,但你可以试试这个:

在您的家长班中:

class Parent extends Model
{
    public function children()
    {
        return $this->hasMany('App\Child');
    }

在您的儿童课程中

class Child extends Model
{
    public function parent()
    {
        return $this->belongsTo('App\Parent');
    }

然后,您应该可以执行以下操作:

App\Parent::with('children')->find($id);