我一直在网上搜索一个小时,但无法弄清楚。如果我们查看 eloquent 关系文档:https : //laravel.com/docs/5.2/eloquent-relationships
示例用户模型:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
/**
* Get the phone record associated with the user.
*/
public function phone()
{
return $this->hasOne('App\Phone');
}
}
Run Code Online (Sandbox Code Playgroud)
在它的正下方,如何访问 id=1 的用户的电话号码:
$phone = User::find(1)->phone;
Run Code Online (Sandbox Code Playgroud)
为什么是phone和不是phone(),有什么区别?
还有它是如何工作的?如果我尝试object->name在我的代码中调用不带括号的 ,PHP 认为我正在寻找一个名为name?
一些额外的信息:
看起来手机正在返回对象(App\Models\Phone)和手机()正在返回对象(Illuminate\Database\Eloquent\Relations\HasOne)
如果我运行下面的代码:
User::find(1)->phone->count()
Run Code Online (Sandbox Code Playgroud)
框架执行以下 SQL 语句:
select * from `phone` where `phone`.`user_id` = '1' and `phone`.`user_id` is not null limit 1
select count(*) as aggregate …Run Code Online (Sandbox Code Playgroud) 我是Laravel的新手.我正在浏览默认的身份验证中间件,我发现它正在使用:
Auth::guard($guard)->guest()
Run Code Online (Sandbox Code Playgroud)
检查用户是否是来宾.
https://laravel.com/docs/5.2/authentication#retrieving-the-authenticated-user上的文档告诉我们可以使用:
Auth::check()
Run Code Online (Sandbox Code Playgroud)
确定用户是否经过身份验证.(我想这是客人()的对面吗?
我尝试更改要使用的默认代码
Auth::guest()
Run Code Online (Sandbox Code Playgroud)
而且我得到了完全相同的结果.
我的问题是,在这种情况下,保护($ guard) - >之间有什么区别?
一个相关的问题.guest()是否与check()完全相反,或者是否存在可能返回相同结果的情况?
谢谢!
我正在尝试显示/编辑 postgis 点类型。我使用的creof/doctrine2-spatial包提供了一些简洁的函数来获取一个点的 X 和 Y 值。以下在编辑/新形式下工作正常,因此该点被列为“YX”(在本例中为“纬度经度”)。
我不确定这是否是完成我需要的正确方法,但它有效。
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->add('name', 'text')
->add('coords', 'text', array(
'data'=>
$this->getSubject()->getCoords()->getLatitude() . ' ' .
$this->getSubject()->getCoords()->getLongitude()
));
}
Run Code Online (Sandbox Code Playgroud)
然而问题是列表视图。因为点被转换为字符串,因为"X Y"它在列表视图中以错误的顺序打印纬度和经度。它打印为“经度纬度”我对奏鸣曲很陌生,所以我不确定如何在列表视图中解决这个问题。
有任何想法吗?
更新:感谢@kunicmarko20 我已经解决了这个问题:
所以文件去了app/Resources/views/SonataAdmin/CRUD/geography_point_list.html.twig
我决定把文件放到一个合理的文件夹中。
模板内容为:
{% extends 'SonataAdminBundle:CRUD:base_list_field.html.twig' %}
{% block field %}
<div>
{{ object.coords.getLatitude }} {{ object.coords.getLongitude }}
</div>
{% endblock %}
Run Code Online (Sandbox Code Playgroud)
使用模板的代码是:
->add('coords', null, ['template' => 'SonataAdmin/CRUD/geography_point_list.html.twig']);
Run Code Online (Sandbox Code Playgroud)
出于某种原因,我无法使用:类型路径?
php ×2
eloquent ×1
form-fields ×1
function ×1
laravel ×1
methods ×1
object ×1
sonata-admin ×1
symfony ×1