Laravel - 표시할 변수 두 개 이상 전달
저는 이 사이트를 가지고 있고, 그 페이지 중 하나가 데이터베이스에서 간단한 사용자 목록을 만듭니다.액세스할 수 있는 변수에 특정 사용자를 추가해야 합니다.
를 변경하려면 어떻게 해야 합니다.return $view->with('persons', $persons);
$ms 변수도 뷰에 전달하려면 line을 선택하십시오.
function view($view)
{
$ms = Person::where('name', 'Foo Bar');
$persons = Person::order_by('list_order', 'ASC')->get();
return $view->with('persons', $persons);
}
어레이로 전달하기만 하면 됩니다.
$data = [
'name' => 'Raphael',
'age' => 22,
'email' => 'r.mobis@rmobis.com'
];
return View::make('user')->with($data);
아니면 @Antonio가 말한 것처럼 쇠사슬을 매거나.
방법은 다음과 같습니다.
function view($view)
{
$ms = Person::where('name', '=', 'Foo Bar')->first();
$persons = Person::order_by('list_order', 'ASC')->get();
return $view->with('persons', $persons)->with('ms', $ms);
}
function view($view)
{
$ms = Person::where('name', '=', 'Foo Bar')->first();
$persons = Person::order_by('list_order', 'ASC')->get();
return $view->with(compact('persons', 'ms'));
}
또는 한 줄에 걸쳐 수행합니다.
function view($view)
{
return $view
->with('ms', Person::where('name', '=', 'Foo Bar')->first())
->with('persons', Person::order_by('list_order', 'ASC')->get());
}
또, 어레이로서 송신할 수도 있습니다.
function view($view)
{
$ms = Person::where('name', '=', 'Foo Bar')->first();
$persons = Person::order_by('list_order', 'ASC')->get();
return $view->with('data', ['ms' => $ms, 'persons' => $persons]));
}
다만, 이 경우는, 다음의 방법으로 액세스 할 필요가 있습니다.
{{ $data['ms'] }}
콤팩트 사용
function view($view)
{
$ms = Person::where('name', '=', 'Foo Bar')->first();
$persons = Person::order_by('list_order', 'ASC')->get();
return View::make('users', compact('ms','persons'));
}
Larabel 뷰에 여러 변수 전달
//Passing variable to view using compact method
$var1=value1;
$var2=value2;
$var3=value3;
return view('viewName', compact('var1','var2','var3'));
//Passing variable to view using with Method
return view('viewName')->with(['var1'=>value1,'var2'=>value2,'var3'=>'value3']);
//Passing variable to view using Associative Array
return view('viewName', ['var1'=>value1,'var2'=>value2,'var3'=>value3]);
Larabel의 뷰에 데이터 전달에 대한 자세한 내용은 여기를 참조하십시오.
이 답변은 다음과 같습니다.
함수에 변수의 큰 숫자를 선언할 때 도움이 되는 비트
Larabel 5.7*
예를들면
public function index()
{
$activePost = Post::where('status','=','active')->get()->count();
$inActivePost = Post::where('status','=','inactive')->get()->count();
$yesterdayPostActive = Post::whereDate('created_at', Carbon::now()->addDay(-1))->get()->count();
$todayPostActive = Post::whereDate('created_at', Carbon::now()->addDay(0))->get()->count();
return view('dashboard.index')->with('activePost',$activePost)->with('inActivePost',$inActivePost )->with('yesterdayPostActive',$yesterdayPostActive )->with('todayPostActive',$todayPostActive );
}
반품 마지막 줄을 보면 보기 안 좋아요.
프로젝트 규모가 커질 경우 좋지 않음
그렇게
public function index()
{
$activePost = Post::where('status','=','active')->get()->count();
$inActivePost = Post::where('status','=','inactive')->get()->count();
$yesterdayPostActive = Post::whereDate('created_at', Carbon::now()->addDay(-1))->get()->count();
$todayPostActive = Post::whereDate('created_at', Carbon::now()->addDay(0))->get()->count();
$viewShareVars = ['activePost','inActivePost','yesterdayPostActive','todayPostActive'];
return view('dashboard.index',compact($viewShareVars));
}
다음과 같이 모든 변수는 다음 배열로 선언되어 있습니다.$viewShareVars
및 뷰에서 액세스
그러나 나의 기능은 매우 커지기 때문에 나는 라인을 매우 심플하게 만들기로 결정했다.
public function index()
{
$activePost = Post::where('status','=','active')->get()->count();
$inActivePost = Post::where('status','=','inactive')->get()->count();
$yesterdayPostActive = Post::whereDate('created_at', Carbon::now()->addDay(-1))->get()->count();
$todayPostActive = Post::whereDate('created_at', Carbon::now()->addDay(0))->get()->count();
$viewShareVars = array_keys(get_defined_vars());
return view('dashboard.index',compact($viewShareVars));
}
네이티브 php 함수get_defined_vars()
함수에서 정의된 모든 변수를 가져옵니다.
그리고.array_keys
변수 이름을 가져옵니다.
따라서 뷰에서 함수 내부의 모든 선언된 변수에 액세스할 수 있습니다.
~하듯이{{$todayPostActive}}
유사한 문제가 발생했지만 뷰 파일과 함께 보기를 반환하지 않으려면 다음을 수행할 수 있습니다.
return $view->with(compact('myVar1', 'myVar2', ..... , 'myLastVar'));
with
기능 및 파라미터:
$ms = Person::where('name', 'Foo Bar');
$persons = Person::order_by('list_order', 'ASC')->get();
return $view->with(compact('ms', 'persons'));
with
기능 및 파라미터:
$ms = Person::where('name', 'Foo Bar');
$persons = Person::order_by('list_order', 'ASC')->get();
$array = ['ms' => $ms, 'persons' => $persons];
return $view->with($array);
이거 드셔보세요.
$ms = Person::where('name', 'Foo Bar')->first();
$persons = Person::order_by('list_order', 'ASC')->get();
return View::make('viewname')->with(compact('persons','ms'));
$oblast = Oblast::all();
$category = Category::where('slug', $catName)->first();
$availableProjects = $category->availableProjects;
return view('pages.business-area')->with(array('category'=>$category, 'availableProjects'=>$availableProjects, 'oblast'=>$oblast));
여러 어레이 데이터를 컨트롤러에서 보기로 전달하려면 이 옵션을 사용해 보십시오.되고 있어요.이 예에서는 테이블에서 제목 세부 정보를 전달하고 있으며 제목 세부 정보에는 카테고리 ID가 포함되어 있습니다. 다른 테이블 범주에서 카테고리 ID를 가져올 경우 이름과 같은 세부 정보가 포함됩니다.
$category = Category::all();
$category = Category::pluck('name', 'id');
$item = Subject::find($id);
return View::make('subject.edit')->with(array('item'=>$item, 'category'=>$category));
If your using laravel, try this:
return view('app-student.app-student dashboard',compact('education_level_data','student_data',.......n));
where by:
1. education_level_data----first-parameter
2. student_data ----second parameter
NB: And you can pass more parameters as much as you can.
간단:)
<link rel="icon" href="{{ asset('favicon.ico')}}" type="image/x-icon" />
언급URL : https://stackoverflow.com/questions/20110757/laravel-pass-more-than-one-variable-to-view
'source' 카테고리의 다른 글
모바일 브라우저 탐지 (0) | 2022.09.18 |
---|---|
MySQL 트리거 - 변수에 SELECT 저장 (0) | 2022.09.18 |
{} 또는 새 Object()를 사용하여 JavaScript에서 빈 개체를 생성하시겠습니까? (0) | 2022.09.18 |
Python에서 쉼표로 분할하고 공백을 제거합니다. (0) | 2022.09.18 |
Java에서 Long에서 Double로 변환 (0) | 2022.09.18 |