[React]ReactDOM

import ReactDOM from "react-dom";
import { Fragment } from "react";
const App = () => {
    return (
        <Fragment>
            <h2>Hello</h2>
            <p>World</p>
        </Fragment>
    );
}
ReactDOM.render(<App />,document.getElementById("root"));

 
省略できる

import ReactDOM from "react-dom";
const App = () => {
    return (
        <>
            <h2>Hello</h2>
            <p>World</p>
        </>
    );
}
ReactDOM.render(<App />,document.getElementById("root"));

[Laravel Sail]いつも忘れるやつ#2

docker-compose.ymlにphpMyAdmin追記

    phpmyadmin:
        image: phpmyadmin/phpmyadmin
        links:
            - mysql:mysql
        ports:
            - 8080:80
        environment:
            MYSQL_USERNAME: '${DB_USERNAME}'
            MYSQL_ROOT_PASSWORD: '${DB_PASSWORD}'
            PMA_HOST: mysql
        networks:
            - sail

[Liquid]バリエーション選択select

<select name="id" class="js_variantsSelect" data-product="{{ product.id }}">
    {%- for variant in product.variants -%}
        <option value="{{ variant.id }}">{{ variant.title | escape }}</option>
    {%- endfor -%}
</select>

[Liquid]メニュー

{%- for link in linklists.sidemenu.links -%}
    {%- if link.links.size <= 0 -%}
        子項目が無いとき
    {%- else -%}
    	子項目があるとき
	    {%- for childlink in link.links -%}
	        
	    {%- endfor -%}
    {%- endif -%}
{%- endfor -%}

[Shopify]ストア通貨フォーマット

設定 > 一般設定



 

ストア通貨



 

Liquidコード

<p class="price">{{ product.price | money }}</p>
<p class="price">{{ product.price | money_without_currency }}</p>
<p class="price">{{ product.price | money_with_currency }}</p>

 

出力結果

¥7,800 円(税込)2
7,800
¥7,800 円(税込)1

[Liquid]capture

{%- capture 変数名 -%}dummy520x390.jpg{%- endcapture -%}
{%- capture html_params -%} data-product="{{ product.id }}" data-variant="{{ variant.id }}" style="{{ html_style }}"{%- endcapture -%}

[Shopify]shopify公式カスタムフィールド

設定 > メタフィールド



 

商品



 

定義を追加する



 

全ての項目へ入力する



 

入力後保存する



 

保存後



 

Liquidコード

<a href="{{ product.url | within: collection }}">
    <div class="image"><img src="{{ product.featured_image.src | img_url: 'large' }}" alt="{{ product.featured_image.alt | escape }}"></div>
    <h3>{{ product.title | escape }}</h3>
    {%- if product.metafields.my_fields.cf_text -%}
        <p>{{ product.metafields.my_fields.cf_text.value | escape }}</p>
    {%- else -%}
        <p>あいうえお</p>
    {%- endif -%}
</a>

 

商品管理画面でカスタムフィールドへ入力



 

出力結果

[Liquid]税込税抜切替

tax-text.liquid

{%- if shop.taxes_included -%}(税込){%- else -%}(税抜){%- endif -%}

管理画面「設定 > 税金」の「すべての価格を税込価格で表示する」チェックならばshop.taxes_includedはtrue

[Laravel][備忘録]バリデーション

コントローラー

<?php

namespace App\Http\Controllers;

use Illuminate\Http\Request;
use App\Models\Post;

class PostController extends Controller
{
    public function create(){
        return view('post.create');
    }
    public function store(Request $request){
        $validated = $request->validate([
            'title' => 'required|max:20',
            'body'  => 'required|max:400',
        ]);
        $post = Post::create($validated);
        /*
        saveを使う場合
        $post = new Post();
        $post->title = $validated['title'];
        $post->body = $validated['body'];
        $post->save();
        */
        /*
        withを使わない場合
        $request->session()->flash('message','保存しました');
        return back();
        */
        return back()->with('message','保存しました');
    }
}

 

表示側

<div class="max-w-7xl">
    @if(session('message'))
        <div class="text-red-600">
            {{ session('message') }}
        </div>
    @endif
    <form method="post" action="{{ route('post.write') }}">
        @csrf
        <div>
            <x-input-error :messages="$errors->get('title')" class="mt-2" />
            <input type="text" name="title" class="w-auto py-2 border border-gray-300 rounded-md" id="title" value="{{old('title')}}">
        </div>

        <div>
            <x-input-error :messages="$errors->get('body')" class="mt-2" />
            <textarea name="body" class="w-auto py-22 border border-gray-300 rounded-md" id="body" cols="30" rows="5">{{old('body')}}</textarea>
        </div>

        <x-primary-button>{{ __('送信する') }}</x-primary-button>
    </form>
</div>