如果行存在,我正在嘗試從國家/地區表中獲取貨幣,否則回傳 null,如下面的代碼所示。
$country = Country::where("id", 619);
if($country->exists()){
$currency = $country->first()->currency;
} else {
$currency = "USD;";
}
uj5u.com熱心網友回復:
您可以使用此快捷方式
$currency = Country::where("id", 619)->first()->currency ?? 'USD';
如果國家存在,這將回傳貨幣,如果它不存在,它將回傳美元
uj5u.com熱心網友回復:
一個易于撰寫的解決方案是
$currency = Country::where("id", 619)->value('currency') ?? 'USD;';
這不會加載 Country 的實體(不使用first()),并將回傳“貨幣”屬性的值,或者null如果沒有可用的結果。
uj5u.com熱心網友回復:
您必須首先在模型中添加關系。你可以在 Laravel 的檔案中找到它。在此之后,您有多種方法可以做到這一點,只有檢查最好的方法是::has($relation)您可以在此處找到的功能。
另一個選擇是使用函式加入表格::with($relation)。完成此操作后,您可以::where($column, $value)使用您習慣的功能檢查連接表的列。我認為這回答了您如何進行子查詢的問題。
模型類中的關系函式示例。
function currency() {
return $this->hasOne(Country:class, 'code', 'country');
}
子查詢示例
$hasCurrency = Country::has('currency');
$currency = null;
if ($hasCurrency) {
$result = Country::with('currency')
->where('id', 619)
->where('currency.active', 1)
->first();
$currency = $result->currency->code;
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/445097.html
