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

问题描述 投票:0回答:2

我想将$ id从我的控制器传递给Model,请帮助我

这是我的控制器

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

php laravel laravel-5.5
2个回答
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']);

}

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;
}
© www.soinside.com 2019 - 2024. All rights reserved.