2016-10-31 1 views
0

하나의 검색어에는 속성을 추가 하나 모델에 대한 모든 검색어를 추가하는 방법은 무엇입니까? 난 당신이 내가 하나 개의 쿼리

$usernames = User::where('username', 'LIKE', '%'.$request->get('search').'%') 
    ->append('icon')->get(); 

을 위해 그것을 추가 할

protected $appends = ['icon']; 

public function getIconAttribute(){ 
    return Gravatar::src($this->email, 100).'&r=g&d=mm'; 
} 

을 추가하여 모델의 모든 쿼리에 속성을 추가 할 수 있습니다 알고 있지만 그 Call to undefined method Illuminate\Database\Query\Builder::append()

내가 할 수있는 오류를 제공합니다 방법을 참조하지만 바보 같은 느낌이다 https://laravel.com/api/5.3/Illuminate/Database/Eloquent/Model.html#method_append

답변

2

append() 기능 Builder 대신 Model의 일부이므로 각 모델에 대해이 모델을 호출해야합니다. 이 도움이

$usernames = User::where('username', 'LIKE', '%' . $request->get('search') . '%') 
    ->get() 
    ->map(function ($user) { 
     return $user->append('icon'); 
    }); 

희망 :

당신은 같은 것을 가질 수있다!

+0

[pull request] (https://github.com/laravel/framework/pull/9798)를 보니 쿼리에서 할 수 있다고 생각 했나요? – whoacowboy

+0

@whoacowboy 당신은 내 희망을 가지고 있습니다. 아니, pull 요청은 일반적으로 append() 메소드를 추가하는 것이었다. –

+0

그건 나쁘지는 않지만, 나는 어리 석절합니다. 당신의 도움을 주셔서 감사합니다! – whoacowboy

관련 문제