php – Laravel Jensenggers Eloquent模型排序主模型与关系模型
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – Laravel Jensenggers Eloquent模型排序主模型与关系模型,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2038字,纯文字阅读大概需要3分钟。
内容图文
![php – Laravel Jensenggers Eloquent模型排序主模型与关系模型](/upload/InfoBanner/zyjiaocheng/774/e12de8f2f1f44d7bac6b4fc18884c606.jpg)
我试图通过关系模型列对主模型的整个数据集进行排序.我正在使用Laravel ORM 5.2.43和Jensenggers MongoDb 3.1
这是我的模特
UserEventActivity.php – Mongo模型
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
class UserEventActivity extends Eloquent
{
protected $collection = 'user_event_activity';
protected $connection = 'mongodb';
public function handset() {
return $this->hasOne('HandsetDetails', '_id', 'handset_id');
}
public function storeDetail() {
return $this->hasOne('StoreDetails', 'st_id', 'store_id');
}
}
HandsetDetails.php – Mongo模型
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
class HandsetDetails extends Eloquent
{
var $collection = 'user_handset_details';
var $connection = 'mongodb';
}
StoreDetails.php – MySql模型
use Jenssegers\Mongodb\Eloquent\HybridRelations;
use Illuminate\Database\Eloquent\Model as Eloquent;
class StoreDetails extends Eloquent
{
use HybridRelations;
protected $connection = 'mysql';
protected $table = 'icn_store';
}
PHP脚本
$activity = UserEventActivity::join('handset ', 'handset._id', '=', 'handset_id')
->join('storeDetail', 'store_id', '=', 'storeDetail.st_id')
->orderBy('handset.handset_make', 'desc')
->select('storeDetail.*', 'handset.*')
->get()
->toArray();
来自UserEventActivity的这些数据不是基于手机关系中的handheld_make字段存储的.
请帮我实现预期的结果
解决方法:
据我所知,MongoDB不支持这样的连接.
解决它的方法可能是使用急切加载.
所以你的UserEventActivity模型可能如下所示:
use Jenssegers\Mongodb\Eloquent\Model as Eloquent;
class UserEventActivity extends Eloquent
{
protected $collection = 'user_event_activity';
protected $connection = 'mongodb';
public function handset() {
return $this->hasOne('HandsetDetails', '_id', 'handset_id');
}
public function storeDetail() {
return $this->hasOne('StoreDetails', 'st_id', 'store_id');
}
public function getHandsetMakeAttribute()
{
return $this->handset->handset_make;
}
}
注意getHandsetMakeAttribute()访问器.
然后你可以用这个打电话:
$activity = UserEventActivity::with('storeDetail')
->with('handset')
->get()
->sortByDesc('handset_make')
->toArray();
根本没有测试,但值得一试.
内容总结
以上是互联网集市为您收集整理的php – Laravel Jensenggers Eloquent模型排序主模型与关系模型全部内容,希望文章能够帮你解决php – Laravel Jensenggers Eloquent模型排序主模型与关系模型所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。