我需要做的是以.csv的形式匯出不同物體內的大量不同數值的串列。我需要在某個日期創建的每個參考都有相關的值。
我所做的是,首先,按日期找到所有的物件,并把它們放在一個陣列中。
$parcelRepo = $this->getDoctrine()->getRepository(Parcel::class)。
$dateToday = new DateTime("now") 。
$parcels = $parcelRepo-> findBy([
'date_add' => $dateToday
然后,在一個foreach回圈中,我找到與每個包裹物體相關的值。這就是我的問題所在,我不明白如何訪問那些與我的第一個地塊物體不在同一個表中的值。 我也需要不使用SQL。
下面是我得到 "只有變數應該通過參考傳遞 "錯誤的代碼。
$array=[]。
foreach ($parcels as & $p) {
$array.array_push(
$p->getDeliveryOrder()->getProduct()->getAccount()->getCoclico()。
"1"。
""。
$p->getDeliveryOrder()->getUser()->getLogin()。
$p->getDeliveryOrder()->getProduct()->getCode()。
$p->getInternalReference()。
$p->getDeliveryOrder()->getProduct()->getCode() "0"/span> $p->getNumber()。
"121"。
$p->getName()。
$p->getAddress4(),
$p->getAddress1()。
$p->getAddress2()。
$p->getAddress3()。
"téléphone", /TODO。
$p->getPostalCode(),
$p->getCity()。
DateTime::createFromFormat('Ymd',$dateToday) 。
""。
""。
"0".
);
}
我認為我需要使用QueryBuilder,但我想知道是否有其他方法來實作我的需求,因為QueryBuilder接近于SQL(據我所知)。
另外,由于我需要在一行中匯出每個foreach值,我需要一個多維陣列。但是我沒有研究這個問題,因為我甚至無法獲得我需要的值。
另外,由于我需要在一行中匯出每個 foreach 值,我需要一個多維陣列。
uj5u.com熱心網友回復:
所以問題來自于
$array.array_push(
這段代碼實際上是合并了$array和array_push()的回傳值,array_push()的第一個引數應該是你想要推入的陣列(通過參考發送),由于你實際上是在發送一個值而不是一個變數,所以出現了這個錯誤。
這里是array_push的檔案 https://www.php.net/manual/ro/function.array-push.php 所以它實際上應該是
array_push($array, ...)。
但是正如Ricardo給你的評論,這段代碼其實是沒有必要的,你可以像這樣從查詢中獲得格式化的資料,像這樣鏈式呼叫多個關系:
$p->getDeliveryOrder()->getProduct()->getAccount()->getCoclico()
這其實是不可取的,但如果你認為你不能這樣做,那么解決的辦法就是正確地寫出array_push。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/310757.html
標籤:
