안녕하세요, 저는 컨트롤러 용 Laravel 5.2에서 단일 상속을 시도하고 있습니다.Laravel에서 컨트롤러 클래스의 단일 상속 5.2
이 세션에 저장되어있는 도시 이름을 가져옵니다 BaseController 클래스 구조에서 내 부모 basecontroller 클래스
<?php
namespace App\Http\Controllers\Moviesfrontend;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class BaseController extends Controller
{
public function __construct($request)
{
//code to check whether city is set in session or not
$selectedcity=$request->session()->get('selectedcity');
}
}
입니다. 이제 자녀 클래스의 $ selectedcity에 저장된이 도시 이름에 액세스하려고합니다.
내 자식 컨트롤러 클래스는
<?php
namespace App\Http\Controllers\Moviesfrontend;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class HomeController extends BaseController
{
public function __construct(Request $request)
{
parent::__construct($request);
}
public function index(Request $request)
{
echo $selectedcity;
}
}
가 Bedefault 내가 부모 클래스의 변수는 자식 클래스에 액세스 할 수 있습니다하지만이 작동하지 않습니다와 나는 $ selectedcity 찾을 수 없습니다 오류 메시지가 무엇입니까 추측이다.
chlid 클래스에서이 변수에 액세스하는 것이 도움이되도록하겠습니다.
나도 똑같은 말을했다. 아직 정의되지 않은 변수 : selectedcity가있다. 그리고 나는 부모 클래스를 만들려고했기 때문에 세션에 값이 있는지 여부를 확인하는 코드를 작성했다. 내가 어떤 코드를 작성하여 세션 값이 설정되었는지 확인하고 싶습니다. 그래서 BaseController를 만들었습니다. – dollar
@dollar이 오류가 계속 발생하면 잘못된 결과가 발생합니다. 어딘가에'$ this'가 빠졌을 것입니다. 또는 인스턴스 속성을 만들지 않았습니다. 어쨌든 이것은 상속 101입니다. 개념의 증명으로이 예제를보십시오 : http://codepad.org/Fm9Qu54h – Gordon
gr8 덕분에, 같은 방법으로 기본 클래스에서 함수를 작성하고 클래스에 액세스 할 수 있습니다. .? – dollar