- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我需要使用 Laravel where() 和 orderBy() 方法。问题是我需要过滤和排序的数据来自外部服务器/另一个主机数据库 (PostgreSQL) 上的关系。
我尝试过的:
public function index(Request $request)
{
$productforms = $this->productform
->select('product_forms.*')
->with('product')
->join('types', 'product_forms.type_id', '=', 'types.id')
->where('product.description', 'ILIKE', '%sugar%');
// ...
}
也试过了:
$rawquery = DB::table('product_forms')
->join('testing.base.products as db2','product_forms.product_id','=','db2.id')
->select(DB::raw('form_title as title'))
->first();
我搜索了很多主题,但没有找到完全相似的内容。
以上第二次尝试的 Laravel 错误消息:
"""
SQLSTATE[0A000]: Feature not supported: 7 ERROR: cross-database references are not implemented: "testing.base.product"
LINE 1: ...m_title as titulo from "product_forms" inner join "test...
^ (SQL: select form_title as titulo from "product_forms" inner join "testing"."base"."product ▶
"""
上述第一次尝试的 Laravel 错误消息:
"""
SQLSTATE[42P01]: Undefined table: 7 ERROR: missing FROM-clause entry for table "products"
LINE 1: ...on "product_forms"."type_id" = "types"."id" where "products"...
^ (SQL: select "product_forms".* from "product_forms" inner join "types" on "product_forms"."type_id" = "types"."id" where "products"."description"::text ILIKE %sugar%) ◀
"""
本地服务器模型productForm:
class ProductForm extends Model implements Auditable
{
protected $table='product_forms';
protected $connection = 'localserver';
protected $fillable = [
'id',
'product_id',
'type_id'
// ...
];
public function product(){
return $this->belongsTo(Product::class);
}
}
外部服务器模型产品:
class Product extends Model
{
protected $connection='externalserver';
protected $table='base.products';
protected $fillable = [
'id',
'description',
'attributes'
// ...
];
// ...
}
示例环境结构:
DB_CONNECTION=localserver
DB_HOST_PG=127.0.0.1
DB_PORT_PG=5432
DB_CONNECTIONK=externalserver
DB_HOST_PGK=externaldomain.com
DB_PORT_PGK=5432
Conf/database.php 连接:
'connections' => [
'localserver' => [
'read' => [
'host' => env('DB_HOST_PG', '127.0.0.1'),
],
'write' => [
'host' => env('DB_HOST_PG_WRITE', '127.0.0.1'),
],
'driver' => 'pgsql',
'port' => env('DB_PORT_PG', '5432'),
// ...
],
'externalserver' => [
'driver' => 'pgsql',
'host' => env('DB_HOST_PGK', 'externaldomain.com'),
'port' => env('DB_PORT_PGK', '5432'),
// ...
]
]
谢谢!任何提示都会帮助我
最佳答案
我认为这不是更好的解决方案,但暂时我找到了解决方法。我的目标是使用 where() 为列表创建搜索过滤器。我所做的解决方法是:
在模型上,使用条件局部作用域:
public function scopeSearchField($query, $search) {
// retrieving the external cross-database data using where() on a closure inside eager loading/with() method
if (!empty($search['product']) ) {
$query->with(
[
'product' =>
function ($query) use($search){
$query->whereRaw(" public.unaccent('description')::text ILIKE public.unaccent('%{$search["product"]}%')::text");
}
]);
}
}
在 Controller 上:
$productforms = $this->productform
->select('product_forms.*')
->searchField($request->all());
在 View 上:
@forelse($productforms as $productform)
@if($productform->product!= null)
<tr>
<td>$productforms->title</td>
<td>$productforms->product->description</td>
<td>$productforms->...</td>
<td>$productforms->...</td>
</tr>
@endif
@endforelse
关于php - 外部服务器上的关系表上的 Laravel where() 和 orderBy(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59069205/
所以我尝试使用angularjs的orderby函数。目前我有一个原始数据集。 $scope.customers = [ {"name" : "Bottom-Dollar Market
我有一个包含以下数据的表列 (Varchar): COLUMN_NAME 102100 1-2000 112100 当我在 SQL 语句中使用 OrderBy 时,我按以下顺序获取项目: COLUMN
我正在研究一些 LINQ 排序,因为我有一个 ID 列表,我需要按顺序对它们进行排序。但是,某些 ID 需要优先于标准顺序。 鉴于此 C# 代码(可以粘贴到 .NET Fiddle 中进行测试),排序
关闭。这个问题需要details or clarity .它目前不接受答案。 想改进这个问题吗? 通过 editing this post 添加细节并澄清问题. 关闭 9 年前。 Improve t
我正在寻找这些 LINQ 表达式的确认/澄清: var context = new SomeCustomDbContext() // LINQ to Entities? var items = co
我的数据在我的 firebase 中看起来像这样。 users: { -KOwKNCB5IiDBxY9FNzR: { content: { blah blah }, timestamp:147
在尝试找出一段代码不同步的原因后,我开始意识到 TSQL OrderBy 与 Linq OrderBy 对于字符串的差异很大。所以很自然地,我必须找到一种方法来确保来自 tsql 的语句返回与 lin
目前,如果我们将订购方向作为外部依赖项,我们必须使用 if 来应用此方向: public static IEnumerable getlist(string directory, string sea
我在我的范围内有一个对象列表,我想遍历它们,以按某些属性排序的方式显示它们的一些属性并更改它们。 ng-repeat 用于显示绑定(bind)到列表中每个对象的文本框,并应用以“position”作为
我在 C# 项目中使用 EntityFramework 6.1.3 和 SQL Server。我有两个查询,基本上应该执行相同的操作。 1. Exams.GroupBy(x=>x.SubjectID)
我正在尝试以 asc 顺序显示从今天开始的特定接下来几天的约会列表。(例如:接下来的 5 天或 10 天)。仅从今天开始,接下来的 5 天或 10 天(注意:天数将是动态的,我的意思是客户将设置)。当
这个问题已经有答案了: 已关闭12 年前。 Possible Duplicates: Which LINQ syntax do you prefer? Fluent or Query Expressi
我目前有一个 OData V4 服务,它具有以下模型。 “类别”——“代码” 对于每个类别,可以有许多代码。 我需要 $expand the Codes, $filter where Active =
可以说注释表具有以下结构: id | author | timestamp | body 我想使用索引有效地执行以下查询: r.table('comments').getAll("me", {inde
是否可以像这样使用 LINQ OrderBy: .OrderBy(x=>(x.SourceID == 3), (x.SourceID == 2), (x=>x.SourceID == 4), (x.S
我有一个这样的数组: $scope.telcodes = ['44', '01', '221', '335']; 如何在像这样的简单数组上使用 orderBy 来生成从 01 开始的有序列表? 我知道
我有一个像这样 Eloquent 查询: Forum::with(['comments.user'])->find($id); 这将返回嵌套结果 forum -> its comments -> us
我正在尝试通过 ManyToMany 注释自动对报告的结果进行排序 @OrderBy : /** * @ORM\ManyToMany(targetEntity="Artist", inversedB
是否有按几列对 data.frame 进行排序的标准方法,但随着减少或增加的变化?例如,您可能希望按一个变量(递减)和下一个(递增)对 data.frame 进行排序。 有没有类似的东西: mydf[
我有一个 linq 查询,无论出于何种原因,它都没有像我期望的那样返回订购。任何人都可以指出我为什么以及我做错了什么的正确方向吗? 代码如下: List designer = null; using
我是一名优秀的程序员,十分优秀!