Heim > Backend-Entwicklung > PHP-Tutorial > Laravel中控制器实例化model的方法有什么不妥 请指点

Laravel中控制器实例化model的方法有什么不妥 请指点

WBOY
Freigeben: 2016-06-06 20:38:48
Original
1200 Leute haben es durchsucht

我在每个控制器的初始化方法中实例化了相应的Model,然后在各个方法里使用,不知道这样有什么不妥,感觉自己实现的不够优雅。 主要是网站有很多模块,都是差不多的功能,部分代码是替换了model名称实例化。

<code>public function __construct()
    {
        parent::__construct();
        $this->model = new \Line();
    }


public function store()
{
    $input = \Input::all();
    $validator = \Validator::make($input,$this->model->getRules('create'),$this->model->getMessage());
    if ($validator->fails())
    {
        return \Redirect::back()->with('errorCode',1)->withErrors($validator)->withInput();
    }else{
        if($model = $this->model->create($input)){
            return \Redirect::back()->with('errorCode',0);
        }else{
            return \Redirect::back()->with('errorCode',2);
        }
    }

}
</code>
Nach dem Login kopieren
Nach dem Login kopieren

回复内容:

我在每个控制器的初始化方法中实例化了相应的Model,然后在各个方法里使用,不知道这样有什么不妥,感觉自己实现的不够优雅。 主要是网站有很多模块,都是差不多的功能,部分代码是替换了model名称实例化。

<code>public function __construct()
    {
        parent::__construct();
        $this->model = new \Line();
    }


public function store()
{
    $input = \Input::all();
    $validator = \Validator::make($input,$this->model->getRules('create'),$this->model->getMessage());
    if ($validator->fails())
    {
        return \Redirect::back()->with('errorCode',1)->withErrors($validator)->withInput();
    }else{
        if($model = $this->model->create($input)){
            return \Redirect::back()->with('errorCode',0);
        }else{
            return \Redirect::back()->with('errorCode',2);
        }
    }

}
</code>
Nach dem Login kopieren
Nach dem Login kopieren

如果是Model的话,不需要这样做。

你是store可以这样写:

<code>public function store()
{
    $input = \Input::all();
    $validator = \Validator::make($input, Line::getRules('create'), Line::getMessage());
    if ($validator->fails())
    {
        return \Redirect::back()->with('errorCode',1)->withErrors($validator)->withInput();
    }else{
        if($model = Line::create($input)){
            return \Redirect::back()->with('errorCode',0);
        }else{
            return \Redirect::back()->with('errorCode',2);
        }
    }

}
</code>
Nach dem Login kopieren

Lind的getRules和getMessage和具体的对象没有关系的话,就写成静态方法。
下面的create直接用静态方法。

Verwandte Etiketten:
Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage