Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/241.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从Laravel 5中的收藏中获取物品?_Php_Laravel 5 - Fatal编程技术网

Php 如何从Laravel 5中的收藏中获取物品?

Php 如何从Laravel 5中的收藏中获取物品?,php,laravel-5,Php,Laravel 5,我是新来的Laravel,我不知道如何从返回的集合中获取项目的值。这是我的密码: $aircraft = Aircraft::join('pams_shared.shared_aircraft', 'aircraft.shared_aircraft_id', '=', 'pams_shared.shared_aircraft.shared_aircraft_id') ->select('aircraft.*', 'shared_aircraft.*') -&

我是新来的
Laravel
,我不知道如何从返回的集合中获取项目的值。这是我的密码:

$aircraft = Aircraft::join('pams_shared.shared_aircraft', 'aircraft.shared_aircraft_id', '=', 'pams_shared.shared_aircraft.shared_aircraft_id')
        ->select('aircraft.*', 'shared_aircraft.*')
        ->where('aircraft.owner_id',Auth::user()->owner_id)
        ->where('registration',$reg)
        ->get();
我想从
airpair.airpair\u id
中获取值,但这就是我被卡住的地方。我试过:

    $id = $aircraft->aircraft_id;
    $id = $aircraft->aircraft.aircraft_id;
我试过:

    $id = $aircraft->aircraft_id;
    $id = $aircraft->aircraft.aircraft_id;
我也试过:

    $id = array_get($aircraft, 'aircraft_id');
但是我得到了
null
作为一个值。当我执行
var\u dump($aircraft)
dd($aircraft)
时,我能够确认数据是否存在

在我看来,我可以通过循环访问该值,但我需要控制器中的这些数据来对另一个表执行第二次查询

希望这是有道理的。干杯

编辑

运行<代码>dd($飞机)时我得到这个:

Collection {#239 ▼
#items: array:1 [▼
    0 => Aircraft {#240 ▼
            #fillable: array:8 [▶]
            #table: "aircraft"
            #primaryKey: "aircraft_id"
            #connection: null
            #perPage: 15
            +incrementing: true
            +timestamps: true
            #attributes: array:16 [▼
                "aircraft_id" => 5
                "owner_id" => 2
                "shared_aircraft_id" => 67443
                "year" => 2012
                "serial_number" => "C127RG3"
                "registration" => "C-SMTH"
                "created_by" => 2
                "modified_by" => 2
                "created_at" => "0000-00-00 00:00:00"
                "updated_at" => "0000-00-00 00:00:00"
                "aircraft_code" => "2072438"
                "aircraft_mfr" => "CESSNA"
                "aircraft_model" => "172RG"
                "aircraft_type" => 4
                "aircraft_eng" => 1
                "aircraft_cat" => 1
                ]
            #original: array:16 [▶]
            #relations: []
            #hidden: []
            #visible: []
            #appends: []
            #guarded: array:1 [▶]
            #dates: []
            #casts: []
            #touches: []
            #observables: []
            #with: []
            #morphClass: null
            +exists: true
        }
    ]
}
当您对
查询生成器
使用
get()
方法时,它将返回一个数组,无论它得到多少条记录。因此,您可以通过索引指向它来访问它。顺便说一句,不要忘记检查是否存在空白,以克服可能出现的错误

$id = 0;
$aircraft = Aircraft::join('pams_shared.shared_aircraft', 'aircraft.shared_aircraft_id', '=', 'pams_shared.shared_aircraft.shared_aircraft_id')
        ->select('aircraft.*', 'shared_aircraft.*')
        ->where('aircraft.owner_id',Auth::user()->owner_id)
        ->where('registration',$reg)
        ->get();
// now you can access properties
if(count($aircraft) > 0) $id = $aircraft[0]->aircraft_id;

如果使用
get()
执行查询,您将始终得到一个集合作为结果。即使你只需要一个模型。最简单的更改方法是使用
first()


我得到了这个错误:
未定义的属性:illumb\Database\Eloquent\Collection::$aircraft.aircraft\u id
正如我所想,您没有那个属性。转储变量并发布结果以供查看。更新后的答案给了我以下错误:
未定义的属性:Illumb\Database\Eloquent\Collection:$aircraft
我将发布我的变量转储。更新后的答案给了我以下错误:
尝试获取非对象的属性
您应该删除第一部分,然后获得更新后的答案,因为这可能会让其他寻找正确答案的人感到困惑。干杯。如果您得到的是
null
,那么您的查询不正确,或者您在
db
中没有值。当我在视图中通过
@foreach
循环运行
$airpair
时,我确实得到了这些值……我想要我想要的一切,我使用视图中的所有结果,但我想要数组的特定部分(
aircraft_id
)在转到我的视图之前在我的控制器中使用。您想要一个飞机模型还是查询可能返回多行?