2017-10-03 3 views
0

사용자 입력이 충분하지 않은 거래를 숨길 수있는 내 거래 모델에 Abandoned라는 전역 범위가 있습니다. ,이 생성 때기본 키로 하나의 모델을 명시 적으로 요청할 때 전역 범위를 사용 중지하는 방법

이 문제는 거래는 버려진 상태에 자동적으로,

이다 , 사용자는 여전히 예를 들어 거래를 포함하는 다양한 API URL을 호출을 포함하여, 그것과 상호 작용 할 수 있어야

Route::post('deals/{deal}/notes', '[email protected]_note'); 
나는이 같은 컨트롤러를 작성하는 경우, 당신은 버려진되는 모든 거래에 메모를 추가 할 수 없습니다

public function add_note(Request $request, Deal $deal) 

:

는 그 제어 방법처럼 작동 할 수 있도록 마법 경로 키 조회를 사용할 수 있도록하려면 . 앱이 모든 목록에서 숨겨진 버려진 거래를 숨기려고 -

그것은 기대 불일치 같은 느낌
public function add_note(Request $request, $deal_id){ 
    $deal = Deal::withAbandoned()->find($deal_id); 

: 내가 찾은 유일한 해결 방법은

같은 모든 컨트롤러를 작성하는 (당신은 404 수) 보고하지만, "이름으로"거래 (기본 키)를 알고 있다면 계속 거래 할 수 있습니다.

답변

0

대답은 here입니다. 나는 모델

use Illuminate\Database\Eloquent\Builder; 
.... 
public static function boot() { 
    static::addGlobalScope('order', function (Builder $builder) { 
     $builder->orderBy('active', 'desc')->orderBy('name', 'asc')- 
     >orderBy('surname', 'asc'); 
    }); 

}

에 설치에 글로벌 범위를 사용, 나는 그것을 제외해야하는 경우, 내가 할 수있는 :

MyModel::withoutGlobalScope('order')->get(); 

는 목록 방식으로 작동하기 때문에, 또는 select2를 채우기 위해, 편집/삭제를 생각하지 않았다 ... 유용한 adition, +1 나를 보인다