请在回答或按“关闭”链接之前仔细阅读此问题.
这个问题是关于分享经验,交换提示和技巧.
只需从您的真实项目中获取一些代码.最好是CRUD型.
我是指真正的代码.请不要从手册中复制粘贴代码示例.它与现实生活需求不同.请不要回答“你可以使用这些方法……”.我完全了解他们.我不是要求方法,而是要求真正的编码经验.
请注意,代码必须完整,包括所有数据准备.但如果可能,不进行验证.如果有太多的后台工作(如模型初始化等),可以省略后台工作.我要求更多的食物供思考,而不是复制和粘贴代码.
请不要太快关闭此主题.
我渴望得到真实世界的代码示例,这里只有很少的代码,但虚拟代码片段无处不在.
欢迎使用PHP以外的语言,以及任何ORM或框架用法.但请记住 – 不要从文档示例中复制粘贴,而是从您自己的项目中复制粘贴.有很大的不同.
解决方法:
有Redbean ORM.我所做的基本上是围绕它的域对象包装我自己的代码,因此它看起来像
class Book extends RedBean_DomainObject
{
public function __construct($id)
{
if ($id!=0)
$this->find($id);
}
public function save_details($author, $title)
{
// insert OR update new entry
$this->author = $author;
$this->title = $title;
$this->save();
}
}
代码将检查’bean’是否存在;如果是的话,它会加载它.您将属性分配给该类,并调用save()方法将其保存到该bean. RedBean ORM将自动检测它是保存还是更新.
注意:RedBean域对象已经被更好的东西取代了.
我也在使用wordpress wp-db,我喜欢这种语法
$wpdb->insert("books", array('title' => $title, 'author' =>$author));
我找到了一个little wrapper online,它允许我做INSERT …在DUPLICATE KEY上.
$wpdb->insert_on_duplicate("author_book_relationship",
array('book_id' => $book_id,
'date_published' =>$date_published),
array('book_id' => $book_id));
第一个参数是表,第二个是插入/更新信息,最后一个是UPDATE部分的where子句.
编辑
class BookHelper
{
public function save_relationship($id, $book, $author)
{
global $wpdb;
$wpdb->insert_on_duplicate("author_book_relationship",
array('book_id' => $book_id,
'date_published' =>$date_published),
array('book_id' => $book_id));
}
}
在战略中
class BookSaveStrategy
{
protected $book_helper;
public function save_relationship($id, $book, $title)
{
// validate id, book and title
//.....
// Save if ok
$this->book_helper->save_relationship($id, $book, $title);
}
}
哪个可以在控制器中使用
if (isset($_POST['save_book']))
{
$book_save_strategy->save($_POST['id'], $_POST['author'], $_POST['title']);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。