set alpine data out side of the component

https://tonylea.com/setting-alpine-data-outside-of-the-component <div x-data="{good_id: '', good_name: ''}" id="good_info" class="w-full" @set_good_data=" good_id = $event.detail.good_id; good_name = $event.detail.good_name; "> <div x-text="good_id"></div> <div x-text="good_name"></div> </div> <script> document.getElementById('good_info').dispatchEvent(new CustomEvent('set_good_data', { detail: { good_id: 1234, good_name: 'Apple', } })); </script>

2023-07-25 · 1 min · 34 words · Me

Laravel Livewire with WinNMP Part II

https://github.com/sueboy19/livewire_demo

2023-06-04 · 1 min · word · Me

Laravel Livewire with WinNMP

winnmp for windows a. create project livewire (Database and user auto create livewire) b. https://winnmp.wtriple.com/tutorial/laravel update composer a. mkdir new directory "t" b. cd t c. https://getcomposer.org/download/ c1. php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');" c2. php -r "if (hash_file('sha384', 'composer-setup.php') === '55ce33d7678c5a611085589f1f3ddf8b3c52d662cd01d4ba75c0ee0459970c2200a51f492d557530c71c15d8dba01eae') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;" c3. php composer-setup.php c4. php -r "unlink('composer-setup.php');" c5. mv composer.phar to C:\WinNMP\bin\composer cd \WinNMP\WWW\livewire a. delete index.php b. composer create-project --prefer-dist laravel/laravel . c. composer require laravel/ui d. composer install e. edit .env e1. DB_DATABASE=livewire DB_USERNAME=livewire f. php artisan ui bootstrap --auth g. php artisan migrate h. developer tools composer require doctrine/dbal composer require --dev barryvdh/laravel-ide-helper composer require --dev beyondcode/laravel-dump-server composer require --dev barryvdh/laravel-debugbar composer require --dev roave/security-advisories:dev-master php artisan vendor:publish --provider="BeyondCode\DumpServer\DumpServerServiceProvider" php artisan vendor:publish --provider="Barryvdh\Debugbar\ServiceProvider" I. php artisan key:generate install node.js for windows a. https://nodejs.org/zh-tw/download b. npm install c. npm run dev ...

2023-06-03 · 2 min · 249 words · Me

Codeigniter 4.2 with Eloquent ORM

composer require "illuminate/database" composer require "illuminate/events" Config/Events.php use Illuminate\Database\Capsule\Manager as Capsule; use Illuminate\Events\Dispatcher; use Illuminate\Container\Container; function boostEloquent() { $capsule = new Capsule; $capsule->addConnection([ 'driver' => 'mysql', 'host' => 'localhost', 'database' => 'database', 'username' => 'root', 'password' => 'password', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', ]); // Set the event dispatcher used by Eloquent models... (optional) $capsule->setEventDispatcher(new Dispatcher(new Container)); // Make this Capsule instance available globally via static methods... (optional) $capsule->setAsGlobal(); // Setup the Eloquent ORM... (optional; unless you've used setEventDispatcher()) $capsule->bootEloquent(); } Events::on('pre_system', function () { boostEloquent(); if (ENVIRONMENT !== 'testing') ... } https://www.modb.pro/db/49966

2023-05-08 · 1 min · 97 words · Me

golang gin windows service

Golang Gin Api become Windows Service Use github.com/kardianos/service package main import ( "errors" "fmt" "io" "log" "net" "net/http" "os" "path/filepath" "strings" "time" "github.com/gin-gonic/gin" "github.com/joho/godotenv" "github.com/kardianos/service" ) // Process Windows Service // github.com/kardianos/service var logger service.Logger type program struct{} func (p *program) Start(s service.Service) error { // Start should not block. Do the actual work async. go p.run() return nil } func (p *program) Stop(s service.Service) error { // Stop should not block. Return with a few seconds. return nil } func ExecPath() string { ex, err := os.Executable() if err != nil { panic(err) } exPath := filepath.Dir(ex) return exPath } func main() { File, err := os.Create(ExecPath() + "\\gin_service_run.log") if err != nil { File = os.Stdout } defer File.Close() log.SetOutput(File) var s service.Service svcConfig := service.Config{ Name: "GinAPI", DisplayName: "Gin API Service", Description: "Gin API Server Converter Windows Service", } prg := &program{} s, err = service.New(prg, &svcConfig) if err != nil { log.Fatalln(err) } logger, err = s.Logger(nil) if err != nil { log.Fatalln(err) } if len(os.Args) > 1 { switch os.Args[1] { case "install": err := s.Install() if err != nil { logger.Errorf("Install Service Fail!", err.Error()) return } fmt.Printf("Install Service Success!") case "uninstall": err := s.Uninstall() if err != nil { logger.Errorf("Uninstall Service Fail!", err.Error()) return } fmt.Printf("Uninstall Service Success!") case "start": err := s.Start() if err != nil { logger.Errorf("Start Service Fail!", err.Error()) return } fmt.Printf("Start Service Success!") case "stop": err := s.Stop() if err != nil { logger.Errorf("Stop Service Fail!", err.Error()) return } fmt.Printf("Stop Service Success!") } return } err = s.Run() if err != nil { logger.Error(err) } } func (p *program) run() { // // Create Error logger // errFile, err := os.OpenFile(ExecPath()+"\\errors.log", os.O_CREATE|os.O_WRONLY|os.O_APPEND, 0666) if err != nil { log.Fatalf("打開日誌文件失敗:", err) } Error = log.New(io.MultiWriter(errFile, os.Stderr), "【Error】", log.Ldate|log.Ltime|log.Lshortfile) // // Get .env // err = godotenv.Load(ExecPath() + "\\.env") if err != nil { msg := "找不到 .env 檔案" logger.Errorf(msg, err) Error.Printf(msg, err) } web_port := os.Getenv("WEB_PORT") // // Start Gin // router := gin.Default() corsConfig := cors.DefaultConfig() corsConfig.AllowAllOrigins = true router.Use(cors.New(corsConfig)) router.GET("/", func(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"status": "Gin Api Success!"}) }) log.Fatal(http.ListenAndServe(":"+web_port, router)) } 1. run server.exe can run Gin Api Server right now. 2. run server install, server uninstall, server start, server stop. 2.1 【Install and Start】run server install Then server start 2.2 【Stop and uninstall】run server stop Then server uninstall 3. log file use absolute path. ExecPath() can get absolute path. 4. .env must use absolute path. Try to use svcConfig.EnvVars = map[string]string{ "WEB_PORT": web port } see register Computer\HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\GinAPI have EnvVars Data. But err := godotenv.Load() can’t get anything, just No Error. So must use absolute path. ...

2023-01-11 · 3 min · 472 words · Me