2017-07-31 75 views
-1

這是dd($followers)結果:如何覆蓋對象的受保護屬性?

LengthAwarePaginator {#401 ▼ 
    #total: 144 
    #lastPage: 8 
    #items: Collection {#402 ▼ 
    #items: array:18 [▶] 
    } 
    #perPage: 20 
    #currentPage: 1 
    #path: "http://myurl.com/SocialCenter/public/twitterprofile/JZarif" 
    #query: [] 
    #fragment: null 
    #pageName: "page" 
} 

現在我想知道,我怎麼能覆蓋#total?我的意思是我想將它重新初始化爲18。因此,這是預期的結果:

LengthAwarePaginator {#401 ▼ 
    #total: 18 
    #lastPage: 8 
    #items: Collection {#402 ▼ 
    #items: array:18 [▶] 
    } 
    #perPage: 20 
    #currentPage: 1 
    #path: "http://myurl.com/SocialCenter/public/twitterprofile/JZarif" 
    #query: [] 
    #fragment: null 
    #pageName: "page" 
} 

就是幹這個可能嗎?


指出,沒有任何這些工作:

$followers->total = 18; 
$followers['total'] = 18; 
+4

它爲什麼會從144變成18?你真的想做什麼? – Ohgodwhy

+0

@Ohgodwhy我正在嘗試[this](https://stackoverflow.com/questions/45407534/why-are-not-pagination-and-distinct-compatible) –

回答

0

你應該做一個getter和setter函數。您可以使用PHP-Reflections。像這個例子:

<?php 
class LengthAwarePaginator 
{ 
    private $total = true; 
} 

$class = new ReflectionClass("LengthAwarePaginator"); 
$total = $class->getProperty('total'); 
$total->setAccessible(true); 
$total->setValue(18); 
+0

該屬性無法訪問,您首先需要使用http://php.net/manual/en/reflectionproperty.setaccessible.php。 – localheinz