草庐IT

Activerecord

全部标签

php - Eloquent ORM Active Record - 这是正确的方法吗?

我认为我终于进入了代码青春期,因为我开始反叛并质疑我所学的一切。我希望这里有人能指出我正确的方向。目前,应该是简单而简短的任务,最终会花费数小时,因为我坐下来盯着几行代码,并质疑这是否确实是正确的方法...这是一个例子。我们有一个系统,可以让User创建一个Post并在该帖子中提及某人。我们有一个获取请求的Controller,然后将其发送到PostService,后者具有如下方法:createPostByUser(int$id,string$title,string$content)并最终发送到$postingUser->post($title,$string)保存帖子的位置。在cr

php - CodeIgniter:通过 ActiveRecord 结果 ID 将 $subresult 添加到对象 $result

我在向Codeigniter中的结果添加“子结果”时遇到问题。不确定如何添加到此对象。$result->{$record_id}->threads=$threads;应该等于这样$result->1->threads=$threads;但我无法让它工作...我不是OOP的新手,但这是我第一次尝试这样做。db->select(array('record_id','record_data','record_date',));$this->db->from('records');$sql=$this->db->get();$records=$sql->result();foreach($re

php - codeigniter - pyrocms 拦截并修改所有查询;扩展事件记录

除了修改DB_active_record.php之外,有没有办法在发送到数据库之前捕获所有查询并修改它们?这将是理想的,但如果它是唯一的选择,我不反对修改这个文件。我可以直接从模型中调用这些东西,但如果这是在后台完成的事情会感觉更好,这样就不会忘记它发生的时间和地点;最好在后台完成。我正在使用一个库来加密查询数据。在lib中,我正在检查某些key是否不加密,因此这不仅仅是加密所有数据的问题,而是每个查询中的一些数据。例如,像这样修改insert():functioninsert($table='',$set=NULL){if(!is_null($set)){$this->CI=&get

php - 如何在 Laravel 中列出嵌套表格中的所有项目

我正在使用Laravel的EloquentORM,但在急切加载要显示的项目时遇到了问题。场景如下:用户关注博客博客有帖子我有一个名为Relationships的数据库表,该表用于存储用户ID和博客ID,以显示哪个用户正在关注哪个博客。我有一个用于描述博客的博客表,还有一个用于帖子的表。关系表将是我的数据透视表,用于将用户与博客表连接在一起。现在,我需要在列表中列出用户关注的所有博客中的所有帖子。这是我的用户模型:publicfunctionfollowing(){return$this->has_many_and_belongs_to('Blog','relationships','u

php - Yii ActiveRecord - 有没有办法只更新脏属性?

在我的应用程序中,我有2个几乎同时运行并更新相同AR模型的进程。当一些过程看起来没有完成时,我遇到了这个错误,但单独调试它们没有出现错误。然后我明白了问题可能发生在下一个案例中:进程A选择行X进程B选择行X进程B更新行X进程A更新行X在所描述的情况下,进程A将覆盖进程B写入的所有内容。B和A都更新了不同的属性。有什么方法可以避免这种覆盖吗?是否有某种机制使AR仅更新“脏”属性而不是所有模型属性?请不要在不使用AR的情况下向我解释解决方案。我明白。但我想听听是否有一些解决方案可以让我正确地进行所需的更新,仍然使用AR。谢谢。 最佳答案

php - Yii ActiveRecord 与存储库模式

这些方法各有利弊。我正在使用Yii开发一个中型应用程序。Yii采用了AR模式并默认支持它。使用存储库模式的优势非常明显,但问题是:我真的应该花时间结合Yii实现存储库模式吗?我还想知道您对这两种模式的看法。我也想知道为什么AR如此流行和如此频繁使用?在我看来,Repository模式更灵活、更可测试、代码更简洁并且可以更好地集成到企业应用程序中。我应该继续在Yii中使用AR模式吗?我也在考虑从Yii切换到Laravel。在这一刻,我不会因为这样做而失去很多工作。 最佳答案 对我来说,ActiveRecord在小型项目中相当不错,但对

php - Codeigniter 在插入数据时捕获错误 (Activerecord)

我正在使用以下代码将数据插入我的数据库:$this->db->set('event_id',$event_id);...$this->db->set('creator_id',$creator_id);$this->db->insert('event');如何确保流程成功并向用户显示确认消息,否则显示错误消息? 最佳答案 嗯,如果成功,IIRC方法会返回true,所以你可以使用一个简单的if($this->db->insert('event')){echo'Rowsuccesfullyinserted!';}否则,您可能总是将aff

php - 如何将 WHERE 子句与事件记录分组?

下面的事件记录代码没有像我需要的那样对WHERE子句进行分组......$this->db->where('customers_id',$this->user->getCurrentUserProperty('id'))$this->db->like('delivery_name',$this->input->post('search'));$this->db->or_like('customers_company',$this->input->post('search'));$this->db->or_like('customers_company2',$this->input->p

php - 如何在 YII2 ActiveRecord 查询中说 (a AND b) OR (c AND d)?

我在使用YII2的ORM时遇到了困难,它没有记录一些非常简单的典型SQL案例,比如伪代码SELECT*FROMtableWHERE(a=1ANDb=2)OR(a=3ANDb=4)我尝试过的://shouldrepresentthecommentedlogic,butdoesnotDemo::find()->where(...)//(conditionone->andWhere(...)//ANDconditiontwo)->orWhere(...)//OR(!)(conditionthree->andWhere(...)//ANDconditionfour)问题:在YII2中,wher

php - 调用未定义的方法 app\models\Message::model()

我是Yii2的新手,使用Gii工具,我已经为简单的“消息”类创建了模型和CRUD组件,其中一个字段“内容”映射到tbl_message。当我尝试使用findByPk函数检索一个消息对象时出现错误,如下所示:$message=Message::model()->findByPk(4);错误信息:Calltoundefinedmethodapp\models\Message::model() 最佳答案 这就足够了:$message=Message::findOne(4)更多详细信息和定制案例可参见here.