728x90
라라벨9 widgets 사용법 - 컨트롤러 호출
widgets 사용법 - 컨트롤러 호출
위젯 생성
#> php artisan make:component WidgetMemo002
/app/Http/Controllers/MemoDefaultController.php - 컨트롤러
<?php
namespace App\Http\Controllers;
use App\Models\Memo;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\View; // 위젯 사용시
class MemoDefaultController
{
........
................
public function memo_list()
{
........
................................
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
/// 위젯테스트 sss
// 위젯 호출
// public_html/app/View/Components/WidgetMemo002.php 파일 호출
// 데이터 전달 부분 ['arr_widget_data' => $arr_return_data]
// 컴포넌트를 직접 렌더링하여 뷰에 전달
// 전송값 없을시
// $widget_memo002 = (new \App\View\Components\WidgetMemo002())->render()->render();
// 전송값 있을시
$arr_request_data['test'] = 1111;
$widget_memo002 = (new \App\View\Components\WidgetMemo002(['arr_request_data' => $arr_request_data]))->render()->render();
// 이방법은 가공한 데이터 출력이 안됨. 이유는 모름
// $widget_memo002 = View::make('components.widget-memo002', ['arr_widget_data' => $arr_return_data])->render();
// $widget_memo002 = View::make('components.widget-memo002')->render(); // 전달값 없이 호출
/// 위젯테스트 eee
//////////////////////////////////////////////////////////////////////
//////////////////////////////////////////////////////////////////////
return view( $cfg_view, compact('arr_return_data','widget_memo002')); //
}
....
......
}
public_html/app/View/Components/WidgetMemo002.php
<?php
namespace App\View\Components;
use Illuminate\View\Component;
class WidgetMemo002 extends Component
{
/**
* Create a new component instance.
*
* @return void
*/
public $arr_return_data;
public $arr_request_data;
public function __construct($arr_request_data)
{
$arr_request_data;
debug_var($arr_request_data);
$arr_VARIABLE_DATA['url_go_list'] = "/memo_list";
$arr_VARIABLE_DATA['url_go_insert_form'] = "/memo_insert_form";
$arr_return_data = $arr_VARIABLE_DATA;
$this->arr_return_data = $arr_return_data;
debug_var($this->arr_return_data);
// print_r($this->arr_return_data);
}
/**
* Get the view / contents that represent the component.
*
* @return \Illuminate\Contracts\View\View|\Closure|string
*/
public function render()
{
// 위젯 html 에 데이터 전달
return view('components.widget-memo002', ['arr_return_data'=> $this->arr_return_data ]);
}
}
/resources/views/components/widget-memo002.blade.php
<h2 class="mt-4 mb-3">Memo List </h2>
<button type="button" id="btn_addnew" class="btn btn-dark" style="float: right;">Create</button>
<input type="text" id="url_go_list" value="{{ $arr_return_data['url_go_list'] }}"> <<<< 위젯에서 만든데이터
<input type="text" id="url_go_insert_form" value="{{ $arr_return_data['url_go_insert_form'] }}"> <<<< 위젯에서 만든데이터
<script>
jQuery("button").bind(
"click",function()
{
console.log( "this.id => " + this.id );
switch(this.id)
{
// case "btn_sarch_submit":
//
// var goUrl = jQuery("#url_go_list").val();
// goUrl += "/sch_type/" + encodeURIComponent( jQuery("#sch_type").val() );
// goUrl += "/sch_keyword/" + encodeURIComponent( jQuery("#sch_keyword").val() );
// window.location.href = goUrl;
// // $(location).attr('href', url);
// // window.location.href="/CI/index.php";
//
// break;
case "btn_addnew":
var Url_thisPage = jQuery("#url_go_insert_form").val();
window.location.href = Url_thisPage;
break;
}// end switch
}
);
// 희얀하게 스크립트 잘 동작한다.
</script>
/resources/views/memo/memo_list.blade.php
{{-- layout 으로 --}}
@extends( $arr_return_data['cfg_pageLayout'] ) {{--@extends('layout.layout_default')--}}
{{-- 아래 html 을 @yield('content') 에 보낸다고 생각하시면 됩니다. --}}
@section('content')
{!! $widget_memo002 !!} // 컨트롤러에서 호출한 위젯
@endsection
@section('scripts')
@endsection
728x90
'php 헛다리 > Laravel9 헛다리' 카테고리의 다른 글
라라벨9 컨트롤러에서 모델 호출하는 방법 (0) | 2024.11.10 |
---|---|
라라벨9 widget 생성시 경로추가 (1) | 2024.10.10 |
라라벨9 widget 사용법 - skin에서 호출 (0) | 2024.10.10 |
라라벨9 - 기본제공 class ( ex - use Illuminate\Http\Request; ) (0) | 2024.10.10 |
라라벨9 .env파일 - 상수 사용하기 (0) | 2024.10.10 |