如何通过关系从其他模型中进行选择

时间:2019-01-05 21:06:14

标签: laravel laravel-5 eloquent

我有两张桌子:

  

***产品:id,标题,价格,created_at,updated_at

此库存产品。

  

*** product_details:id,product_id,销售,created_at,updated_at

此库存每天的销售数量。 例子

产品:

  

----- 1-产品1- 2.9-created_at,updated_at

     

----- 2-产品2- 3.94-created_at,updated_at

     

----- 3-产品3- 1.94-created_at,updated_at

product_details:

  

----- 1-2- 3-created_at,updated_at

     

----- 2-1- 6-created_at,updated_at

     

----- 3-3-8-created_at,updated_at

     

----- 4-2- 6-created_at,updated_at

     

----- 5-1- 7-created_at,updated_at

     

----- 6-3-11-created_at,updated_at

我有两个模型:

产品:

class Product extends Model
{    
    public function product_details()
    {
        return $this->hasMany('App\Product_detail');
    }
}

Product_detail

class Product_detail extends Model
{
    //
    public function product()
    {
        return $this->belongsTo('App\Product');
    }
}

控制器

class Test extends Controller
{
    //*
    public function index()
    {
        $products = new Product;

        $today = Carbon::now()->toDateTimeString();;
        $yesterday = Carbon::now()->subDays(100)->toDateTimeString();
        $products = $products->product_details()->whereBetween('sell', array(1, 90000))->whereBetween('created_at', array($yesterday, $today))->get();
        dd($products);
        }
}

我想选择最后一天卖出5到8之间的产品。

我还想选择最近一天销售的产品在5、8之间,而created_at在两个日期之间的所有产品信息都来自Product_detail。

我尝试用不同的代码进行测试,但是失败了。

1 个答案:

答案 0 :(得分:0)

您可以尝试使用口才帮助功能进行简单查询:

Product::whereBetween('date', [$dateOne, $dateTwo])->get();

如果您愿意,也可以尝试以下方法:

Product::where('date_one','<=',$dateOne)
       ->where('date_two','>=',$dateTwo)
       ->get();

->get();将返回所有结果,->first()将返回第一个结果。

由于您没有向我们显示表名,因此您当然需要在查询中放入正确的变量。