gpt4 book ai didi

php - 有没有办法在 laravel 5.2 中使用 Eloquent 一对多关系来选择列?

转载 作者:行者123 更新时间:2023-11-29 02:16:05 25 4
gpt4 key购买 nike

我正在使用 Laravel 5.2。我的数据库设置为:

social_logins
ID | social_id | provider
-----------------------------
1 | x | twitter
2 | y | facebook
3 | z | twitter

twitter_data
ID | social_id | some_value | another_value
-----------------------------------------------
1 | x | 100 | 600
2 | y | 200 | 100
3 | z | 100 | 400

我的 social_logins 模型关系设置为:

public function twitterData()
{
return $this->hasMany('App\Models\TwitterData', 'social_id', 'social_id');
}

在我的 Controller 中,我想使用外键 social_id 取回某些列上的 twitter_data。到目前为止,我已经尝试过:$socialLogin->twitterData->select('some_value', 'another_value');但我只收到一条错误消息:

BadMethodCallException in Macroable.php line 74:
Method select does not exist.

如果我使用像 $socialLogin->twitterData->lists('some_value'); 这样的 lists() 调用,我只能为一列获取数据返回,但如何让它适用于多列?

最佳答案

如果 lists() 适合您(顺便说一句,它在 5.3 中被删除并删除,请改用 pluck()),那么使用多个参数也应该适合您:

$socialLogin->twitterData->pluck('some_column', 'another_column');

此外,您可以尝试在 get() 方法中传递列以仅获取您想要获取的列:

$data = $socialLogin->with('twitterData')->get(['some_column', 'another_column']);

关于php - 有没有办法在 laravel 5.2 中使用 Eloquent 一对多关系来选择列?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39426697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com