질문을 삭제하지 말아주세요.!
 
1
0
-1

잘문드립니다.

summit → route(/products) → controller(products.index) 일때는 Controller 에서  Request 가 조회 됩니다.

하지만 아래와 같이 

summit → route(/form-summit) → route(/) → controller(products.index) 일때는 Request 가 Controller 에서 null 로 나오네요.

route(/form-summit)  를 추가한 이유는 withinput 을 써서 이전 입력값을 넘겨서 old helper 를 쓸려고 추가 했습니다.

코드는 아래와 같습니다.

<dashborad.blade.php>

<div class="panel">
<div class="panel-heading"></div>
<div class="panel-body">
<div class="table-responsive">
<table class="table table-striped background-color: black">
<form method="GET" action="{{ route('products.form-summit') }}" id="products-manager-form">
{!! csrf_field() !!}
<tr class="col-md-9 col-lg-9">
<td class="col-md-1 col-lg-2">
<div class="form-group">
<h4>
<small><i class="fa fa-chevron-circle-down"></i>&nbsp&nbsp재고 구분</small>
</h4>
<label class="radio-inline">
........... 생략

</dashborad.blade.php>


<web.php>

Route::prefix('products')->group(function () {

# PRODUCT DASHBORAD ROUT
Route::get(
'/',
'ProductController@index'
)->name('products.index');


Route::get(
'/form-summit',
function() {
return back()->withInput();
}
)->name('products.form-summit');
});
</web.php>


<PorductController.php>


class ProductController extends Controller
{


public function index(Request $request)
{
$input_brand = $request->get('brand');
echo '<pre>' . print_r($input_brand) . '</pre>'; // 요기서 $input_brand null 로 나옵니다.
$input = $request->all();
echo '<pre>' . print_r($input) . '</pre>'; // 요기서 $input null 로 나옵니다.

/* 입력한 Brand 및 카테고리url 을 참조해서 Query
$products = Product::with([
'categoryurl',
'brand' => function ($query) use($input_brand) {
if (isset($input_brand)) {
$query->where('brand_name','=',$input_brand);
}
}])->latest()->paginate(15);
*/
$categoryurls = CategoryUrl::all();
$brands = Brand::all();
$products = Product::with(['categoryurl','brand'])->latest()->paginate(15);
return view('products.dashboard',[
'categoryurls' => $categoryurls,
'brands' => $brands,
'products' => $products,
// 'brand_name_cl' => $input_brand,
]);
}
</ProductController.php>




    CommentAdd your comment...

    2 answers

    1.  
      1
      0
      -1

      GET 요청할 때 입력 값(쿼리 파라미터)을 유지하고, 응답 뷰에서 사용하고 싶은 거죠? 아래 시퀀스와 그림을 참고해주세요. 요청한 쿼리 파라미터를 사용하는 부분은 뷰에서 request('brand', null) 부분을 참고하세요.

      앞 부분의 컨텍스트가 없어서 이해하긴 어려울 수 있는데, 이 링크도 참고하세요. http://l5.appkr.kr/lessons/42-be-makeup.html#필터-풀-텍스트-검색-정렬-기능


      클라이언트서버
      GET /?brand=apple

      brand=apple 쿼리

      쿼리 결과를 $products 변수에 저장

      뷰에 $products 변수 바인딩

      라라벨이 뷰 렌더링(PHP to HTML)

      렌더링된 뷰를 HTTP로 응답
      뷰 렌더링(HTML to 화면)
      GET /?brand=apple URL은 그대로 유지됨


        CommentAdd your comment...
      1.  
        1
        0
        -1

        감사합니다. ^^;; 성공했습니다.

          CommentAdd your comment...