如何将变量从控制器传递到模型

时间:2019-04-30 09:39:51

标签: php laravel laravel-5.5

我要将$ id从我的控制器传递给模型,请帮助我

这是我的控制器

class OrderController extends Controller
{
 public function show($id,Request $request) {
$data= order_list::select('*')
            ->where('t_order_list.id_order', $id)
            ->get();
}
}

如何将$ id传递给我的模型

class order_list extends Model
{
    protected $table = "t_order_list";

    protected $fillable = ['id_order','id_product','id_variant','qty_order'];

    protected $with = ['variant_list'];

    public function variant_list($id){
        return $this->hasMany('App\Model\variant','id','id_variant')
                ->join('t_color','t_variant.id_pcolor','=','t_color.id')
                ->join('t_size','t_variant.id_psize','=','t_size.id')
                ->join('t_subcategory','t_variant.id_pcategory_sub','=','t_subcategory.id')
                ->join('t_order_list as d', 't_variant.id', '=', 'd.id_variant')
                ->select(['t_variant.*','t_color.code_pcolor','t_size.code_psize','t_color.hex_pcolor'
                    ,'t_color.hex_pcolor_2','t_color.hex_pcolor_3',
                    't_subcategory.name_pcategory_sub','d.qty_order'])
                    ->where('d.id_order', $id);                  
    }

this my error

2 个答案:

答案 0 :(得分:0)

从Controller调用,如OrderList :: variant_list($ id)并定义函数,如

public static function variant_list($id){
    return $this->hasMany('App\Model\variant','id','id_variant')
            ->join('t_color','t_variant.id_color','=','t_color.id')
            ->join('t_size','t_variant.id_size','=','t_size.id')
            ->join('t_subcategory','t_variant.id_subcategory','=','t_subcategory.id')
            ->join('t_order_list as d', 't_variant.id', '=', 'd.id_variant')
            ->select(['t_variant.*','t_color.code_color','t_size.code_size','t_color.hex_color'
                ,'t_color.hex_color_2','t_color.hex_color_3',
                't_subcategory.name_subcategory','d.qty_order']);

}

答案 1 :(得分:0)

您可以简单地将变量从控制器传递到模型。

对于普通方法:-

控制器:-UserController

public function test(){
    $id = "A";
    $user = new User; //create object
    $user->passValue($id);
}

型号:-用户

public function passValue($id){
  echo $id;
}

对于静态方法:-

public function test(){
    $id = "A";
    User::passValue($id);
}

型号:-用户

public static function passValue($id){
  echo $id;
}