2016-07-04 6 views
0

모든 요청에 ​​대해 도메인 이름을 기반으로 특정 기본 속성을 가져 오는 기본 컨트롤러가 있습니다. 여기에는 app_idlanguage_id이 포함됩니다. 즉, 예를 들어 내가 가지고하는 새로운 Post 모델을 만들려고한다면, 그래서컨트롤러에서 모델로 laravel 값 전달

, 내 모델에서 설정이 값을 얻을 수있는 권장 방법이 될 것입니다 무엇 app_id 내 base_controller에 정의 된 값으로 설정 language_id.

어떤 종류의 응답이든지 상관이 있습니다.

+0

모델의 사용 __construct 방법. 객체가 시작될 때 그 값을 전달하십시오. –

+0

감사합니다. Ravi, 모델에서 __construct를 사용하고 app_id에 대한 값을 하드 코드하여 테스트했지만 시도한 후에 app_id가 저장되지 않습니다. – jon

+0

모든 모델에'app_id'와'language_id'가 삽입 된 특별한 이유가 있습니까? 대신에 이것들만을 프로퍼티로 가지는 모델을 생성하고 능변을 사용하여 그 모델을 매핑하십시오. 또는 이들을 사용자 객체에 주입하고 그 주위를 전달하십시오. –

답변

0

세션을 사용하여 app_id 및 language_id를 저장하고 필요할 때마다 세션에서 가져올 수 있습니다. 코멘트에 제안

Check How to use sessions in Laravel from here

+0

MohammedA에게 감사드립니다. 데이터를 전달하는 것이 좋습니다. – jon

+0

저장하는 데이터에 따라 그 민감도와 저장할 위치가 다릅니다. 즉 쿠키를 세션에 저장하면 (db 또는 파일 대신) 모든 사용자가 데이터에 액세스 할 수 있습니다. – theMohammedA

0

당신은 __consruct 방법을 사용할 수 있습니다. 여기

다른 대안입니다 : -

YourController.php

<?php 
namespace App\Http\Controllers; 

use Illuminate\Http\Request; 

use App\Http\Requests; 
use App\Http\Controllers\Controller; 

use App\YourModel; 

class YourController extends Controller 
{ 

    public function callModelStaticMethod() 
    { 
     $data = ['appId'=>4, 'languageId'=>5]; 
     YourModel::passDataToModelMethod($data);   
    } 
} 

YourModel.php

<?php 

namespace App; 

use Illuminate\Database\Eloquent\Model; 

class YourModel extends Model 
{ 

    public static function passDataToModelMethod($data) 
    { 
     var_dump($data); 
     // Write your business logic here. 
     // $newObj = new self; 
     // $newObj->app_id = $data['app_id']; 
     // $newObj->language_id = $data['languageId']; 
     // $newObj->save(); 
    } 

} 
+0

계속 도움을 주신 @Ravi Hirani에게 감사드립니다. 그렇다면 언제 callModelStaticMethod()를 호출하여 데이터를 설정하겠습니까? – jon

+0

@jon : 그 메소드를 호출 할 필요는 없습니다. 그것은 단지 예일뿐입니다. 해당 메서드 내부의 코드를 고려해야합니다. 이 코드를 사용하여 컨트롤러에서 모델로 데이터를 전달할 수 있습니다. 하나의 질문 컨트롤러에서 app_id 및 language_id를 어떻게 얻었습니까? –

+0

$ data = Domain :: 여기서 ('domain', '=', $ _SERVER [ 'SERVER_NAME']) -> first(); 컨트롤러의 생성자에서. – jon

관련 문제