![](/img/trans.png)
[英]Updating a row in the database from the modal using Laravel Eloquent
[英]Laravel (Eloquent) Not Updating Database
遇到了一個令人困惑的大問題。 我正在使用Laravel(3.2.5和現在的3.2.7),我正在使用Eloquent ORM來更新數據庫(PostgreSQL)。
這是我正在做的事情:
$updateLinks = array_diff($dbLinkArray, $dbLinkArrayOriginal); $dbLink->fill($updateLinks); Log::info('1st LOG Original: '.$dbLinkArrayOriginal['link_text'].' New: '.$dbLinkArray['link_text']); Log::info('2nd Log Dirty: '.implode(', ', $dbLink->get_dirty())); $dbLink->save(); Log::info('3rd Log Supposed to be changed: '.implode(', ',array_keys($updateLinks)));
我使用了一些日志記錄和調試工具欄來找出發生的wtf。 這是信息:
知道為什么,首先,即使Laravel將SQL標記為正在運行並顯示正確的查詢,數據庫也不會更新?
另外,任何想法為什么ENTIRE對象是臟的並且查詢嘗試更新整個對象(23列以上)而不僅僅是更改(3-5列)?
對於你的第二個問題(為什么所有列都更新,而不僅僅是臟的)。 Laravel文檔說明:
默認情況下,所有屬性鍵/值對都將在批量分配期間存儲。 但是,可以創建將要設置的屬性的白名單。 如果設置了可訪問屬性white-list,則在批量分配期間不會設置除指定屬性之外的任何屬性。
這對你有幫助嗎?
親切的問候,亨德里克
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.