好吧,我很确定我不是第一个遇到这种情况的人,我只是不知道正确的词来搜索解决方案.考虑以下数据库表(针对此问题进行简化):
数据库表http://www.nth-root.nl/public/images/wolf/cat_attr.png
正如您在图片中看到的,有一个包含产品类别的类别表和一个包含不同属性的属性表.例如:颜色(用于服装),容量(用于mp3播放器)等.
第三个表位于图片的中心,将属性链接到类别.
现在在后端我有一个"编辑类别"页面,其中包含一个用于编辑(或添加)类别的表单.在同一页面上,我想显示下拉列表列表,以便管理哪些属性链接到当前产品类别.
后端http://www.nth-root.nl/public/images/wolf-commerce/edit_category.png
它使用jquery来添加/删除下拉列表.
问题是:如何使用表单的$ _POST数据操作category_attribute表中的数据.
懒惰的解决方案是(并且我过去已经这样做了):
1.删除给定类别
2的category_attribute中的所有当前行.然后将所有选定的属性插入category_attribute
但这并不是非常有效,即使有人只更改了类别的标题,它也会删除并重新添加所有行.
所以我正在寻找一种方法来进行正确的插入,更新和删除:
1.删除$ _POST中没有出现的行(已删除下拉列表)
2.更新已更改的行(另一个选项来自已选择下拉列表)
3.插入新的行(已添加新的下拉列表)
我只是不知道该怎么做或在哪里找到一个好例子.使用某些ajax可能很容易,但我正在寻找一个纯粹的php解决方案,将$ _POST值与数据库中的值进行比较.
如果有人知道一篇解释最佳(也是最有效)解决方案的好文章,请告诉我,我将非常感激.
-edit-
我已经包含了一些图片来澄清我的问题,但是堆栈溢出拒绝包含它们因为我的声誉太低,所以我希望我的问题很清楚,没有图像.
-edit2-现在我有足够的声誉,我添加了图像.
提前致谢,
尼克
我没有看到设计使用 PUT 和 DELETE 来更新和删除数据的 REST API 服务的巨大好处。这两个动词可以通过使用 POST 和唯一的 url 轻松替换。
我看到使用 PUT 和 DELETE 的唯一好处是它减少了 REST API 服务使用的 url 数量,这并不多。我忽略了其他好处吗?
我正在创建一个用户将为其创建帐户的Web应用程序,允许他们在数据库上读/写数据.我即将开始创建网站的登录验证部分,这是我第一次真正做这部分.据我了解,我将创建一个用户表,该表将存储该网站的所有必要登录信息.
我知道还有数据库角色/权限.我的问题是关于2在这种情况下如何相关.我是否需要对网站和数据库中的用户进行身份验证?我的思维过程是,如果我的所有PHP脚本都设置为会话数据只允许经过身份验证的用户读/写数据库,那么我不需要在数据库端做任何事情,但我我想确保我正确地考虑这个问题.
那是泥浆吗?
我需要在Symfony 2中更改默认的favicon,我已经执行app/console assets:install web --symlink并在web目录中公开了我的images文件夹.检查以下图片.

在基地我默认有这个:
<link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
Run Code Online (Sandbox Code Playgroud)
我试图将链接更改为包含该公用文件夹路径的很多内容,但是我失败了,除了我读过之外,favicon没有加载,favicon需要一些时间来显示(我不知道)知道这是否完全准确),但我不知道什么是正确的或什么不是.任何人都可以指出正确的方法吗?
是否有可能在访问我的网站时同时存在两个设备的重复IP地址?这就是我获取IP地址的方式
$_SERVER['REMOTE_ADDR']
Run Code Online (Sandbox Code Playgroud) 我在我的树枝模板中使用/ bundles/path作为图像,例如
<link href="{{ asset('bundles/acmedemo/css/contact.css') }}" rel="stylesheet" />
<img src="{{ asset('bundles/acmedemo/images/image.jpg') }}">
<img src="/bundles/acmedemo/images/image.jpg">
Run Code Online (Sandbox Code Playgroud)
是否有任何安全风险,用户可能会知道我使用symfony fw,并利用某些东西,或者用户可能知道我的包名称,谁知道这可能导致什么,或者用户可能能够我知道的热链接文件可以通过服务器设置进行更正,但是这样做是否存在任何问题,就混淆和安全性而言?
请注意,我正在开发一个基于这个fw的企业站点,并且我必须不披露等等,它不像它的开源包或任何东西.
我正在使用PHPStorm来开发Symfony2应用程序.一切正常,但"框架"选项卡不显示我的控制器,资源和包内容.
它应该是这样的:http: //www.kevwebdev.com/img/2012/11/phpstorm-framework-tab.png
我有这个:http: //pl.tinypic.com/view.php?pic = 2dsls08&s = 8#.U7LuDPl_sqE
我的项目中有控制器,但PHPStorm没有显示它们.
知道什么是错的吗?
如果一个或多个测试被认为有风险,我希望PHPUnit 失败.其实:
PHPUnit 5.3.4 by Sebastian Bergmann and contributors.
..RRR.. 7 / 7 (100%)
Time: 2.83 seconds, Memory: 26.00Mb
OK, but incomplete, skipped, or risky tests!
Tests: 7, Assertions: 137, Risky: 3.
Run Code Online (Sandbox Code Playgroud)
它说"好,但不完整",所以我的测试没有失败(并且可以在连续交付的情况下运送).有没有办法让"失败"状态?我希望我的测试全局状态在风险测试中被视为失败,不知道是否可能.
我正在使用PHPStorm 7.当我编写以下代码时,
public function ()
{
}
Run Code Online (Sandbox Code Playgroud)
然后重新格式化它,它输出以下格式:
public
function ()
{
}
Run Code Online (Sandbox Code Playgroud)
为什么单词'function'换行到第二行?我尝试在PHP代码样式设置对话框中关闭和关闭每个设置但没有成功.我在哪里可以关闭它?
这是我写的代码片段:
if player_a in reward_dict:
reward_dict[player] += money
elif player_a not in reward_dict:
reward_dict[player] = money
Run Code Online (Sandbox Code Playgroud)
我写的是这样的,因为我认为它很容易阅读,你不需要做任何逻辑结论来直接得到意义.
但是我的同事看到了我的代码,他说:"这并不明确,因为玩家_a只有两种可能性,不管是不是."
所以,根据他的意见,这段代码应该像这样写:
if player_a in reward_dict:
reward_dict[player] += money
else:
reward_dict[player] = money
Run Code Online (Sandbox Code Playgroud)
我觉得很难判断这两种风格,所以我问了这个问题,并希望更多人的意见能说清楚.
你对这两种风格有什么看法?