Laravel查询写作

时间:2017-05-31 23:28:50

标签: php sql laravel laravel-5

我正在Laravel 5.4开发一个项目。我想在我的模型中编写一个选择,插入和更新查询,该查询应该适用于数据库中的任何表。我曾经这样做的是Codeigniter并在那里工作得很好,但我不知道如何在Laravel中使用它。

以下是Codeigniter中模型文件的代码

class General_Model extends CI_Model {

        public function fetch_CoustomQuery($sql){
        $query = $this->db->query($sql);
        return $query->result(); 

        }


        public function create_record($data, $tbl) 
        {
        $this->db->set($data);
        $this->db->insert($tbl);
        return ($this->db->affected_rows() != 1) ? FALSE : TRUE;
        }



        public function update_record($data, $tbl, $wher) 
        {
        $this->db->where($wher);
        $this->db->set($data);
        $this->db->update($tbl);
        }


        public function delete_record($tbl, $wher) 
        {
        $this->db->where($wher);
        $this->db->delete($tbl);         
        } 
}

Codeigniter非常容易。我只需要传递参数并且工作正常。我想在Laravel的模型中编写相同的查询。请帮忙

2 个答案:

答案 0 :(得分:3)

我会强烈建议阅读documentation,但方法很简单:

GeneralModel::create(["num" => 1, "name" => 2]);
GeneralModel::where("num", ">", 2)->update(["num" => 1]);
GeneralModel::where("num", ">", 2)->delete();

没有必要将这些方法放在模型上。

答案 1 :(得分:1)

如果你真的想要那样的东西那么你可以在那里接受模型作为参数:

public function create_record($model,$data)
{
    $model::create($data);
}

在控制器中您可以执行类似

的操作
$model = App\Fruit; // lets say fruit is a model you have
GeneralModel::create_record($model,$data);

但为什么不直接使用它:

$var = App\Fruit::create($data);

这是多余的..对于每个模型都有一种从他们的透视表中获取,插入,更新或删除记录的方法..我建议你阅读更多关于Laravel Eloquent的文档