我正在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的模型中编写相同的查询。请帮忙
答案 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的文档