我一直在审查Laravel Collections的文档和API,但似乎找不到我要找的东西:
我想从集合中检索包含模型数据的数组,但只获取指定的属性.
也就是说Users::toArray('id','name','email'),集合实际上拥有用户的所有属性,因为它们在别处使用,但在这个特定的地方我需要一个带有userdata的数组,并且只需要指定的属性.
在Laravel中似乎没有帮助吗? - 我怎样才能以最简单的方式做到这一点?
谷歌已经标志着reference和id领域不赞成2014年6月24日,并与单取代它place_id.
到目前为止,我只看到place_id了27个字符的长度,但是想知道这个长度是否有任何文档?我无法在任何地方找到这个记录.
显然知道它的长度place_id对于选择最佳数据库字段很重要,因此我想知道.
来自Google Places API文档网站:
id和引用字段自2014年6月24日起不再使用.它们将替换为新的地点ID,这是一个唯一标识符,可用于比较地点和检索有关地点的信息.Places API当前在所有回复中返回place_id,并在"地方详细信息"和"放置删除"请求中接受placeid.2015年6月24日之后不久,API将停止返回响应中的id和引用字段.一段时间后,API将不再接受请求中的引用.我们建议您尽快更新代码以使用新的地方ID而不是ID和引用.
在Laravel中定义多对多关系时,使用belongsToMany()或hasManyThrough()有什么区别?
例:
User
Account
Account_User
因此,User通过Account_User表与Account有很多关系.除了仅定义具有相关帐户的相关用户的数据透视表之外,它还存储一个Account_User.role字段,该字段确定给定用户在给定帐户中具有哪个角色.
使用其中一个User belongsToMany() Account或User hasManyThrough() Account Account_User哪个含义会是什么?或者这基本上是一样的吗?
当决定一个方法时,我想我应该使用相同的方法进行反向关系定义.
我正在尝试创建一个基于响应Bootstrap 3的导航栏,有两行.但是,我遇到了HTML结构和折叠功能的问题.
下面是对所需结果的直观描述,我希望有人可以指出我在HTML/CSS方面的正确方向(尽可能多的默认Bootstrap功能).
基本上,菜单需要执行以下操作:
在平板电脑/台式机设备上,第一行是徽标和小型辅助链接菜单(Link1-3).第二行是带有主链接的主菜单(LinkA-E).
在移动设备上,经典的折叠设计应该带有徽标和汉堡包图标.展开的菜单应首先显示主链接(LinkA-E),然后显示辅助链接(Link1-3).
平板/台式设备:
|----------------------------------------------------------|
| LOGO/BRAND Link1 Link2 Link3 |
|----------------------------------------------------------|
| LinkA LinkB LinkC LindD LinkE |
|----------------------------------------------------------|
Run Code Online (Sandbox Code Playgroud)
移动设备(已折叠):
|--------------------------------------|
| LOGO/BRAND HAMBURGER |
|--------------------------------------|
Run Code Online (Sandbox Code Playgroud)
移动设备(扩展):
|--------------------------------------|
| LOGO/BRAND HAMBURGER |
|--------------------------------------|
| LinkA |
| LinkB |
| LinkC |
| LinkD |
| LinkE |
|--------------------------------------|
| Link1 |
| Link2 |
| Link3 |
|--------------------------------------|
Run Code Online (Sandbox Code Playgroud) 我有一个使用像地理空间领域的一些车型POINT,POLYGON或MULTIPOLYGON.我想告诉我的模型以特殊方式处理这些属性,以便我获得所需的模型属性集.
示例:每个常规Model::find()或其他Eloquent方法应在存储之前或检索数据库值之后应用一些自定义代码.
$area->surface是POLYGONMySQL中的一个字段,但在我的模型类中,我想$area->surfare作为一个点数组来处理.
在SELECT因此,我要像1)使用原始表达式来获取值的文本表示获取值,和2)通过一些自定义的PHP代码到WKT字符串转换成一个数组.
在INSERT/UPDATE我想取属性值(数组)和1)将其转换为WKT字符串,然后2)使用存储该值的DB原始语句将其写入数据库.
我想在一个字段的基础上设置它,而不是作为每个字段的特殊get/set函数,而不是在控制器中 - 因为我有许多地理空间字段.
有没有办法在Laravel实现这一目标?
(同一个问题的一个更抽象的版本,就是我如何创建操作实际SQL查询的属性值的代码,而不仅仅是通过mutators和accessors进行一些基于值的操作)
更新:
深入了解Laravel Doc和API,我发现这个Eloquent::newQuery()方法可能是我需要操作的吗?这会用于任何查询,无论是否SELECT,INSERT或UPDATE?
对于数据库上的大多数查询都包含诸如"在多边形内"的要求的项目,我开始考虑选择PostgreSQL与PostGIS而不是MySQL,我以前主要使用它.主要是因为PostgreSQL有更多的GIS功能.但是,我不确定如何评估这一点,也无法真正看到PHP开发人员视角的差异.
希望你们能帮助我澄清其中一些.
当我在PHP中评估MySQL SELECT JOIN结果时,我使用表名来构建嵌套数组.但是,当使用AS计算列时,我似乎无法按预期设置表名(为了简化,我在这个例子中没有JOIN尝试,但问题是相同的):
SELECT `field1`, `field2`, "Test" AS `Table`.`field3` FROM `Test`;
Run Code Online (Sandbox Code Playgroud)
这会引发错误.
如何在SQL中指出我想将field3与哪个表关联?
(导致表名为$pdoStatement->getColumnMeta()"表")
据我所知,骆驼案是通常的惯例,根据http://forums.laravel.io/viewtopic.php?id=8857
但是,Laravel使用created_at和updated_at作为时间戳字段.
我很困惑,因为数据库中字段名称的最佳命名约定是什么?如果使用camel,我可以将created_at切换到createdAt,还是应该将camel case用于自己的字段和蛇案例的时间戳?
这对我来说似乎并不清楚.也许Laravel希望我一直使用snake case,比如数据库中的first_name和PHP代码中的$ first_name,而不是数据库中的firstName,以及代码中的$ firstName?
我希望有人能澄清......
如何定义不区分大小写(路径的一部分)?
例:
在路径的固定部分中使用大写字符不起作用:
我理解如何使用{>}等参数使用 - > with()使用正则表达式模式,但这对路由的固定部分没有帮助,如上所述.
在我的 MVC 框架中,我有时会在表单提交后重定向。假设您将表单发布到 /example/input。
我想在 PHP 中添加正确的标题代码和解释性文本,例如 header('HTTP/1.1 404 Not Found');
1) 您的输入包含错误。您停留在 /example/input 页面并再次获取表单,标记错误等。其中 HTTP 1.1。代码和文本是否适合与此重定向指令一起发送?
2) 你的输入没问题,元素被保存,你被重定向Header('Location: ...')到 /example/success。其中 HTTP 1.1。代码和文本在这里合适吗?
3) PHP 代码由于配置错误、缺少包含文件、数据库连接损坏或其他任何有时出错而引发错误。其中 HTTP 1.1。代码和文本在这里合适吗?
我看过这里的代码:http : //www.w3.org/Protocols/rfc2616/rfc2616-sec10.html 数字 200 显示为 1),而数字 301/302 显示为 2),数字 500 显示为3)。但在所有三种情况下,我发现上面链接上的代码后面的标题/解释并不完全符合我上面描述的场景。我应该选择其他代码/文本吗?
我正在尝试反转MySQL POINT字段中值的X和Y坐标。
以下查询运行无错误,但之后所有值都为空:
UPDATE `Table` SET `column` = PointFromText(CONCAT('"POINT(',Y(`column`),',',X(`column`),')"'))
Run Code Online (Sandbox Code Playgroud)
查询出了什么问题?