{"id":1899,"date":"2026-08-02T07:43:40","date_gmt":"2026-08-01T22:43:40","guid":{"rendered":"https:\/\/blog.nexive.tech\/?p=1899"},"modified":"2026-08-02T07:43:40","modified_gmt":"2026-08-01T22:43:40","slug":"laravel-composite-key-eloquent-query-builder","status":"publish","type":"post","link":"https:\/\/blog.nexive.tech\/?p=1899","title":{"rendered":"Laravel\u8907\u5408\u4e3b\u30ad\u30fc\u3067Eloquent\u3068Query Builder\u3092\u4f7f\u3044\u5206\u3051\u308b"},"content":{"rendered":"\n<p class=\"wp-block-paragraph\">\u53d7\u6ce8\u660e\u7d30\u3084\u5728\u5eab\u5c65\u6b74\u3067\u306f\u30011\u3064\u306e <code>id<\/code> \u3067\u306f\u306a\u304f\u3001\u8907\u6570\u306e\u5217\u30671\u884c\u3092\u7279\u5b9a\u3059\u308b\u30c6\u30fc\u30d6\u30eb\u304c\u3042\u308a\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001\u53d7\u6ce8\u660e\u7d30\u306a\u3089 <code>order_no<\/code> \u3068 <code>line_no<\/code> \u306e\u7d44\u307f\u5408\u308f\u305b\u30671\u884c\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Laravel\u3067\u3053\u306e\u30c6\u30fc\u30d6\u30eb\u3092\u89e6\u308b\u3068\u3001\u6700\u521d\u306b\u8d77\u304d\u308b\u6df7\u4e71\u306f\u300c\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3067\u306f\u8907\u5408\u4e3b\u30ad\u30fc\u3092\u4f5c\u308c\u308b\u306e\u306b\u3001Eloquent\u3067\u306f\u540c\u3058\u611f\u899a\u3067\u4fdd\u5b58\u3067\u304d\u306a\u3044\u300d\u3053\u3068\u3067\u3059\u3002 \u3053\u3053\u3092\u66d6\u6627\u306b\u3057\u305f\u307e\u307e\u8a18\u4e8b\u3092\u8aad\u3080\u3068\u3001\u9014\u4e2d\u3067\u5fc5\u305a\u6b62\u307e\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<div style=\"border-color:#caecec;border-width:1px;border-style:solid;border-radius:8px;background-color:#f2fbfb;margin-top:1.8em;margin-bottom:2em;padding:16px 18px\"><p style=\"line-height:2;margin:0\">\u8907\u5408\u4e3b\u30ad\u30fc\u306e\u30c6\u30fc\u30d6\u30eb\u3067\u306f\u3001DB\u306e\u4e00\u610f\u6027\u3068Eloquent\u306e\u30e2\u30c7\u30eb\u8b58\u5225\u3092\u5206\u3051\u3066\u8003\u3048\u307e\u3059\u3002<span class=\"swl-marker mark_yellow\">DB\u3067\u306f <code>order_no + line_no<\/code> \u3067\u4e00\u610f\u3067\u3082\u3001Eloquent\u306e <code>save()<\/code> \u3084 <code>delete()<\/code> \u306f\u5358\u4e00\u4e3b\u30ad\u30fc\u306e\u524d\u63d0\u3067\u52d5\u304d\u307e\u3059\u3002<\/span><\/p><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u306e\u8a18\u4e8b\u3067\u306f\u3001\u53d7\u6ce8\u660e\u7d30\u30c6\u30fc\u30d6\u30eb\u3092\u4f7f\u3063\u3066\u3001\u5b9f\u969b\u306b\u3069\u3053\u3067\u30a8\u30e9\u30fc\u306b\u306a\u308b\u306e\u304b\u3092\u5148\u306b\u898b\u307e\u3059\u3002 \u305d\u306e\u3046\u3048\u3067\u3001Eloquent\u3067\u8aad\u3080\u51e6\u7406\u3001Query Builder\u3067\u660e\u793a\u3059\u308b\u51e6\u7406\u3001DB\u8a2d\u8a08\u3067\u9003\u304c\u3059\u51e6\u7406\u3092\u5206\u3051\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u53d7\u6ce8\u660e\u7d30\u30c6\u30fc\u30d6\u30eb\u3067\u518d\u73fe\u3059\u308b<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">DB\u3067\u306forder_no\u3068line_no\u30671\u884c\u306b\u306a\u308b<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u984c\u6750\u306f\u3001\u53d7\u6ce8\u660e\u7d30\u30c6\u30fc\u30d6\u30eb\u3067\u3059\u3002 \u53d7\u6ce8\u756a\u53f7\u3060\u3051\u3067\u306f\u8907\u6570\u884c\u3042\u308a\u307e\u3059\u3002\u884c\u756a\u53f7\u3060\u3051\u3067\u3082\u4ed6\u306e\u53d7\u6ce8\u3068\u885d\u7a81\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#2e3440\"><span style=\"background:#c8d0e0;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#2e3440\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>Schema::create('order_lines', function (Blueprint $table) {\n    $table->string('order_no', 20);\n    $table->unsignedInteger('line_no');\n    $table->string('product_code', 30);\n    $table->integer('qty');\n    $table->integer('unit_price');\n    $table->timestamps();\n\n    $table->primary(&#91;'order_no', 'line_no'&#93;);\n});<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #8FBCBB\">Schema<\/span><span style=\"color: #81A1C1\">::<\/span><span style=\"color: #88C0D0\">create<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_lines<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">function<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #8FBCBB\">Blueprint<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">table<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">table<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">string<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">20<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">table<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">unsignedInteger<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">line_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">table<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">string<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">product_code<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">30<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">table<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">integer<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">qty<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">table<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">integer<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">unit_price<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">table<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">timestamps<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">table<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">primary<\/span><span style=\"color: #ECEFF4\">(&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">line_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">})<\/span><span style=\"color: #81A1C1\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u306e\u30c6\u30fc\u30d6\u30eb\u306a\u3089\u3001DB\u306f\u6b21\u306e\u91cd\u8907\u3092\u6b62\u3081\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#2e3440\"><span style=\"background:#c8d0e0;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#2e3440\">Markdown<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>order_no | line_no | product_code | qty | unit_price\n---------|---------|--------------|-----|-----------\nSO-1001  | 1       | P-001        | 2   | 1200\nSO-1001  | 2       | P-002        | 1   | 3000\nSO-1002  | 1       | P-001        | 5   | 1200<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9FF\">order_no | line_no | product_code | qty | unit_price<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">---------|---------|--------------|-----|-----------<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">SO-1001  | 1       | P-001        | 2   | 1200<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">SO-1001  | 2       | P-002        | 1   | 3000<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">SO-1002  | 1       | P-001        | 5   | 1200<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><code>SO-1001<\/code> \u306e <code>line_no = 1<\/code> \u306f1\u884c\u3060\u3051\u3067\u3059\u3002 \u696d\u52d9\u4e0a\u3082\u3001\u554f\u3044\u5408\u308f\u305b\u3067\u306f\u300cSO-1001\u306e1\u884c\u76ee\u300d\u3068\u547c\u3079\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Eloquent\u306fid\u5217\u304c\u3042\u308b\u3064\u3082\u308a\u3067\u52d5\u304f<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u4f55\u3082\u6307\u5b9a\u3057\u306a\u3044Eloquent\u30e2\u30c7\u30eb\u306f\u3001\u4e3b\u30ad\u30fc\u540d\u3092 <code>id<\/code> \u3068\u898b\u306a\u3057\u307e\u3059\u3002 \u3067\u3082\u3001\u3055\u304d\u307b\u3069\u306e <code>order_lines<\/code> \u30c6\u30fc\u30d6\u30eb\u306b\u306f <code>id<\/code> \u5217\u304c\u3042\u308a\u307e\u305b\u3093\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#2e3440\"><span style=\"background:#c8d0e0;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#2e3440\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>class OrderLine extends Model\n{\n    protected $table = 'order_lines';\n    protected $guarded = [];\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">class<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">OrderLine<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">extends<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB; font-weight: bold\">Model<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">protected<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">table<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_lines<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">protected<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">guarded<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">[]<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u306e\u30e2\u30c7\u30eb\u30671\u884c\u3092\u53d6\u3063\u3066\u3001\u6570\u91cf\u3092\u5909\u3048\u3066\u4fdd\u5b58\u3057\u3066\u307f\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#2e3440\"><span style=\"background:#c8d0e0;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#2e3440\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>$line = OrderLine::query()\n    ->where('order_no', 'SO-1001')\n    ->where('line_no', 1)\n    ->firstOrFail();\n\n$line->qty = 3;\n$line->save();<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">line<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">OrderLine<\/span><span style=\"color: #81A1C1\">::<\/span><span style=\"color: #88C0D0\">query<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">where<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">SO-1001<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">where<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">line_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">firstOrFail<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">line<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #D8DEE9\">qty<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">3<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">line<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">save<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u8aad\u307f\u53d6\u308a\u306f\u901a\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u3002 <code>where('order_no')-&gt;where('line_no')<\/code> \u3067SELECT\u3057\u3066\u3044\u308b\u304b\u3089\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u554f\u984c\u306f\u4fdd\u5b58\u6642\u3067\u3059\u3002 Eloquent\u306f\u30e2\u30c7\u30eb\u3092\u4fdd\u5b58\u3059\u308b\u3068\u304d\u306b\u3001\u305d\u306e\u30e2\u30c7\u30eb\u306e\u4e3b\u30ad\u30fc\u3067\u66f4\u65b0\u5bfe\u8c61\u3092\u4f5c\u308d\u3046\u3068\u3057\u307e\u3059\u3002 \u4e3b\u30ad\u30fc\u540d\u3092\u6307\u5b9a\u3057\u3066\u3044\u306a\u3051\u308c\u3070 <code>id<\/code> \u3092\u4f7f\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">Eloquent\u5358\u4f53\u3068SQLite\u3067\u6700\u5c0f\u518d\u73fe\u3059\u308b\u3068\u3001\u4f8b\u5916\u306f\u51fa\u305a\u3001\u6b21\u306eSQL\u304c\u5b9f\u884c\u3055\u308c\u307e\u3057\u305f\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#2e3440\"><span style=\"background:#c8d0e0;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#2e3440\">Markdown<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>update \"order_lines\"\nset \"qty\" = ?, \"updated_at\" = ?\nwhere \"id\" is null<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9FF\">update &quot;order_lines&quot;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">set &quot;qty&quot; = ?, &quot;updated_at&quot; = ?<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">where &quot;id&quot; is null<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u66f4\u65b0\u4ef6\u6570\u306f0\u4ef6\u3067\u3001DB\u306e <code>qty<\/code> \u306f\u5909\u308f\u308a\u307e\u305b\u3093\u3002 DB\u3084\u8a2d\u5b9a\u306b\u3088\u3063\u3066\u306f\u3001<code>id<\/code> \u5217\u304c\u306a\u3044\u3053\u3068\u3067SQL\u30a8\u30e9\u30fc\u306b\u306a\u308b\u3053\u3068\u3082\u3042\u308a\u307e\u3059\u3002\u3069\u3061\u3089\u306b\u3057\u3066\u3082\u3001\u610f\u56f3\u3057\u305f <code>order_no + line_no<\/code> \u3067\u66f4\u65b0\u3055\u308c\u3066\u3044\u307e\u305b\u3093\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u3053\u3067\u8a70\u307e\u308b\u7406\u7531\u306f\u3001SELECT\u6642\u306e\u6761\u4ef6\u3068\u3001\u4fdd\u5b58\u6642\u306bEloquent\u304c\u4f7f\u3046\u6761\u4ef6\u304c\u9055\u3046\u304b\u3089\u3067\u3059\u3002 \u8aad\u307f\u53d6\u308a\u3067\u306f <code>order_no<\/code> \u3068 <code>line_no<\/code> \u3092\u66f8\u3044\u3066\u3044\u3066\u3082\u3001<code>save()<\/code> \u3067\u306fEloquent\u304c\u4e3b\u30ad\u30fc\u3092\u7d44\u307f\u7acb\u3066\u76f4\u3057\u307e\u3059\u3002<\/p>\n\n\n<div class=\"swell-block-balloon\"><div class=\"c-balloon -bln-left\" data-col=\"gray\"><div class=\"c-balloon__icon -circle\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/blog.nexive.tech\/wp-content\/uploads\/2026\/05\/concern-150x150.png\" alt=\"\" class=\"c-balloon__iconImg\" width=\"80px\" height=\"80px\"><span class=\"c-balloon__iconName\">tomo<\/span><\/div><div class=\"c-balloon__body -speaking -border-on\"><div class=\"c-balloon__text\">\n<p>\u300cwhere\u30671\u884c\u53d6\u308c\u305f\u304b\u3089save\u3082\u540c\u3058\u6761\u4ef6\u3067\u66f4\u65b0\u3059\u308b\u306f\u305a\u300d\u3068\u601d\u3046\u3068\u5916\u3057\u307e\u3059\u3002Eloquent\u306f\u3001\u53d6\u5f97\u306b\u4f7f\u3063\u305fwhere\u6761\u4ef6\u3092\u4fdd\u5b58\u6642\u306e\u30ad\u30fc\u3068\u3057\u3066\u899a\u3048\u3066\u304f\u308c\u308b\u308f\u3051\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002<\/p>\n<span class=\"c-balloon__shapes\"><span class=\"c-balloon__before\"><\/span><span class=\"c-balloon__after\"><\/span><\/span><\/div><\/div><\/div><\/div>\n\n\n<h3 class=\"wp-block-heading\">primaryKey\u306b\u914d\u5217\u3092\u5165\u308c\u308b\u3068\u5225\u306e\u30a8\u30e9\u30fc\u306b\u306a\u308b<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u3067\u306f\u3001\u30e2\u30c7\u30eb\u3078\u8907\u5408\u4e3b\u30ad\u30fc\u3092\u914d\u5217\u3067\u66f8\u3051\u3070\u3088\u3044\u306e\u3067\u3057\u3087\u3046\u304b\u3002 \u3053\u3046\u66f8\u304d\u305f\u304f\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#2e3440\"><span style=\"background:#c8d0e0;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#2e3440\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>class OrderLine extends Model\n{\n    protected $table = 'order_lines';\n    protected $primaryKey = &#91;'order_no', 'line_no'&#93;;\n    public $incrementing = false;\n    protected $keyType = 'string';\n    protected $guarded = [];\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">class<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">OrderLine<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">extends<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB; font-weight: bold\">Model<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">protected<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">table<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_lines<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">protected<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">primaryKey<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">line_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">public<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">incrementing<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">false;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">protected<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">keyType<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">string<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">protected<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">guarded<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">[]<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u306e\u72b6\u614b\u3067\u540c\u3058\u3088\u3046\u306b\u4fdd\u5b58\u3059\u308b\u3068\u3001\u4eca\u5ea6\u306f\u5225\u306e\u5834\u6240\u3067\u58ca\u308c\u307e\u3059\u3002 Laravel\u3084PHP\u306e\u30d0\u30fc\u30b8\u30e7\u30f3\u306b\u3088\u3063\u3066\u6587\u8a00\u306f\u5909\u308f\u308a\u307e\u3059\u304c\u3001\u5178\u578b\u7684\u306b\u306f\u6b21\u306e\u3088\u3046\u306a\u30a8\u30e9\u30fc\u3067\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#2e3440\"><span style=\"background:#c8d0e0;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#2e3440\">Markdown<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>Illegal offset type<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9FF\">Illegal offset type<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">PHP 8\u7cfb\u3067\u306f\u3001\u6b21\u306e\u3088\u3046\u306a\u6587\u8a00\u306b\u306a\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#2e3440\"><span style=\"background:#c8d0e0;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#2e3440\">Markdown<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>Cannot access offset of type array on array<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9FF\">Cannot access offset of type array on array<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u306a\u305c\u3053\u3046\u306a\u308b\u304b\u3002 Eloquent\u306e\u4fdd\u5b58\u51e6\u7406\u306f\u3001\u4e3b\u30ad\u30fc\u540d\u3092\u6587\u5b57\u5217\u3068\u3057\u3066\u6271\u3046\u524d\u63d0\u3067\u3001\u5143\u306e\u5c5e\u6027\u304b\u3089\u30ad\u30fc\u5024\u3092\u53d6\u308a\u51fa\u3057\u307e\u3059\u3002 \u3068\u3053\u308d\u304c <code>$primaryKey<\/code> \u306b\u914d\u5217\u3092\u5165\u308c\u308b\u3068\u3001\u4e3b\u30ad\u30fc\u540d\u305d\u306e\u3082\u306e\u304c\u914d\u5217\u306b\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u30a4\u30e1\u30fc\u30b8\u3068\u3057\u3066\u306f\u3001\u6b21\u306e\u3088\u3046\u306a\u3053\u3068\u304c\u8d77\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#2e3440\"><span style=\"background:#c8d0e0;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#2e3440\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>$keyName = &#91;'order_no', 'line_no'&#93;;\n\n\/\/ \u672c\u5f53\u306f $original&#91;'id'&#93; \u306e\u3088\u3046\u306b\u6587\u5b57\u5217\u30ad\u30fc\u3092\u60f3\u5b9a\u3057\u3066\u3044\u308b\n$value = $original&#91;$keyName&#93;;<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">keyName<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">line_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #616E88\">\/\/ \u672c\u5f53\u306f $original&#91;&#39;id&#39;&#93; \u306e\u3088\u3046\u306b\u6587\u5b57\u5217\u30ad\u30fc\u3092\u60f3\u5b9a\u3057\u3066\u3044\u308b<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">value<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">original<\/span><span style=\"color: #ECEFF4\">&#91;<\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">keyName<\/span><span style=\"color: #ECEFF4\">&#93;<\/span><span style=\"color: #81A1C1\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u914d\u5217\u3092\u914d\u5217\u306e\u30ad\u30fc\u3068\u3057\u3066\u4f7f\u304a\u3046\u3068\u3057\u3066\u3001<code>Illegal offset type<\/code> \u7cfb\u306e\u30a8\u30e9\u30fc\u306b\u306a\u308a\u307e\u3059\u3002 \u3064\u307e\u308a\u3001<code>$primaryKey<\/code> \u306b\u914d\u5217\u3092\u5165\u308c\u308b\u3060\u3051\u3067\u306f\u3001Eloquent\u306e\u4fdd\u5b58\u51e6\u7406\u306f\u8907\u5408\u4e3b\u30ad\u30fc\u5bfe\u5fdc\u306b\u306a\u308a\u307e\u305b\u3093\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"swl-marker mark_orange\"><strong>\u8907\u5408\u4e3b\u30ad\u30fc\u3067\u8a70\u307e\u308b\u5834\u6240\u306f\u3001\u30c6\u30fc\u30d6\u30eb\u4f5c\u6210\u3067\u306f\u306a\u304f\u3001\u30e2\u30c7\u30eb\u3092\u4fdd\u5b58\u3084\u524a\u9664\u306b\u4f7f\u3046\u3068\u3053\u308d\u3067\u3059<\/strong><\/span><\/p>\n\n\n\n<h2 class=\"wp-block-heading\">Eloquent\u3067\u8aad\u3081\u308b\u7bc4\u56f2<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u4e00\u89a7\u8868\u793a\u306fEloquent\u3067\u3082\u66f8\u3051\u308b<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u8907\u5408\u4e3b\u30ad\u30fc\u306e\u30c6\u30fc\u30d6\u30eb\u3067\u3082\u3001\u4e00\u89a7\u8868\u793a\u306a\u3089Eloquent\u3092\u4f7f\u3048\u308b\u5834\u9762\u304c\u3042\u308a\u307e\u3059\u3002 \u30dd\u30a4\u30f3\u30c8\u306f\u3001Eloquent\u30e2\u30c7\u30eb\u3092\u300c\u4fdd\u5b58\u3059\u308b1\u884c\u300d\u3068\u3057\u3066\u6271\u308f\u305a\u3001\u691c\u7d22\u7d50\u679c\u3092\u8868\u793a\u3059\u308b\u305f\u3081\u306b\u4f7f\u3046\u3053\u3068\u3067\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#2e3440\"><span style=\"background:#c8d0e0;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#2e3440\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>class OrderLine extends Model\n{\n    protected $table = 'order_lines';\n    public $incrementing = false;\n    public $timestamps = true;\n    protected $guarded = [];\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">class<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">OrderLine<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">extends<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB; font-weight: bold\">Model<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">protected<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">table<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_lines<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">public<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">incrementing<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">false;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">public<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">timestamps<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">true;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">protected<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">guarded<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">[]<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u53d7\u6ce8\u756a\u53f7\u3054\u3068\u306e\u660e\u7d30\u4e00\u89a7\u306f\u3001\u6b21\u306e\u3088\u3046\u306b\u66f8\u3051\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#2e3440\"><span style=\"background:#c8d0e0;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#2e3440\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>$lines = OrderLine::query()\n    ->where('order_no', $orderNo)\n    ->orderBy('line_no')\n    ->get();<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">lines<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">OrderLine<\/span><span style=\"color: #81A1C1\">::<\/span><span style=\"color: #88C0D0\">query<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">where<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">orderNo<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">orderBy<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">line_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">get<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u306e\u51e6\u7406\u3067\u306f\u3001Eloquent\u306b\u300c\u8907\u5408\u4e3b\u30ad\u30fc\u30671\u884c\u3092\u4fdd\u5b58\u3057\u3066\u304f\u308c\u300d\u3068\u983c\u3093\u3067\u3044\u307e\u305b\u3093\u3002 \u305f\u3060\u306eSELECT\u3067\u3059\u3002 \u3060\u304b\u3089\u3001\u30af\u30a8\u30ea\u30b9\u30b3\u30fc\u30d7\u3084\u30a2\u30af\u30bb\u30b5\u3092\u4f7f\u3063\u3066\u753b\u9762\u8868\u793a\u3092\u8aad\u307f\u3084\u3059\u304f\u3059\u308b\u4f59\u5730\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#2e3440\"><span style=\"background:#c8d0e0;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#2e3440\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>class OrderLine extends Model\n{\n    protected $table = 'order_lines';\n\n    public function scopeForOrder($query, string $orderNo)\n    {\n        return $query->where('order_no', $orderNo);\n    }\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">class<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">OrderLine<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">extends<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB; font-weight: bold\">Model<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">protected<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">table<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_lines<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">public<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">function<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">scopeForOrder<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">query<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">string<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">orderNo<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">return<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">query<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">where<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">orderNo<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#2e3440\"><span style=\"background:#c8d0e0;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#2e3440\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>$lines = OrderLine::query()\n    ->forOrder($orderNo)\n    ->orderBy('line_no')\n    ->get();<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">lines<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">OrderLine<\/span><span style=\"color: #81A1C1\">::<\/span><span style=\"color: #88C0D0\">query<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">forOrder<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">orderNo<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">orderBy<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">line_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">get<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"swl-marker mark_yellow\">Eloquent\u3092\u4f7f\u3046\u306a\u3089\u3001\u307e\u305a\u8aad\u307f\u53d6\u308a\u4e2d\u5fc3\u306e\u7bc4\u56f2\u306b\u9589\u3058\u308b<\/span>\u3068\u5224\u65ad\u3057\u3084\u3059\u304f\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u5358\u4e00\u30ad\u30fc\u306e\u30de\u30b9\u30bf\u53c2\u7167\u306fEloquent\u306b\u5bc4\u305b\u3084\u3059\u3044<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u53d7\u6ce8\u660e\u7d30\u304b\u3089\u5546\u54c1\u30de\u30b9\u30bf\u3092\u5f15\u304f\u3088\u3046\u306a\u95a2\u4fc2\u306a\u3089\u3001\u5358\u4e00\u30ad\u30fc\u3067\u3064\u306a\u304c\u308b\u305f\u3081Eloquent\u3067\u66f8\u304d\u3084\u3059\u3044\u3067\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#2e3440\"><span style=\"background:#c8d0e0;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#2e3440\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>class OrderLine extends Model\n{\n    protected $table = 'order_lines';\n\n    public function product()\n    {\n        return $this->belongsTo(Product::class, 'product_code', 'product_code');\n    }\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">class<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">OrderLine<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">extends<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB; font-weight: bold\">Model<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">protected<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">table<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_lines<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">public<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">function<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">product<\/span><span style=\"color: #ECEFF4\">()<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">return<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$this-&gt;<\/span><span style=\"color: #88C0D0\">belongsTo<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #8FBCBB\">Product<\/span><span style=\"color: #81A1C1\">::class<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">product_code<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">product_code<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u308c\u306f\u3001\u53d7\u6ce8\u660e\u7d30\u305d\u306e\u3082\u306e\u3092\u8907\u5408\u4e3b\u30ad\u30fc\u3067\u4fdd\u5b58\u3059\u308b\u8a71\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 <code>product_code<\/code> \u3068\u3044\u30461\u5217\u3067\u5546\u54c1\u30de\u30b9\u30bf\u3092\u53c2\u7167\u3057\u3066\u3044\u308b\u3060\u3051\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u306e\u3088\u3046\u306b\u3001\u540c\u3058\u30e2\u30c7\u30eb\u306e\u4e2d\u3067\u3082\u3001Eloquent\u306b\u5bc4\u305b\u3066\u3088\u3044\u90e8\u5206\u3068\u5371\u306a\u3044\u90e8\u5206\u304c\u3042\u308a\u307e\u3059\u3002 \u5168\u90e8\u3092\u7981\u6b62\u3059\u308b\u3068\u753b\u9762\u5074\u304c\u91cd\u304f\u306a\u308a\u307e\u3059\u3002\u5168\u90e8\u3092Eloquent\u3078\u5bc4\u305b\u308b\u3068\u4fdd\u5b58\u3067\u8a70\u307e\u308a\u307e\u3059\u3002<\/p>\n\n\n<div class=\"swell-block-balloon\"><div class=\"c-balloon -bln-left\" data-col=\"gray\"><div class=\"c-balloon__icon -circle\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/blog.nexive.tech\/wp-content\/uploads\/2026\/05\/small-smile-150x150.png\" alt=\"\" class=\"c-balloon__iconImg\" width=\"80px\" height=\"80px\"><span class=\"c-balloon__iconName\">tomo<\/span><\/div><div class=\"c-balloon__body -speaking -border-on\"><div class=\"c-balloon__text\">\n<p>\u8907\u5408\u4e3b\u30ad\u30fc\u306e\u30c6\u30fc\u30d6\u30eb\u3067\u3082\u3001Eloquent\u3092\u8aad\u3080\u305f\u3081\u306b\u4f7f\u3046\u306e\u306f\u60aa\u304f\u3042\u308a\u307e\u305b\u3093\u3002\u5371\u306a\u3044\u306e\u306f\u3001<strong>\u8aad\u307f\u53d6\u3063\u305f\u30e2\u30c7\u30eb\u3092\u305d\u306e\u307e\u307e\u4fdd\u5b58\u3084\u524a\u9664\u3078\u6d41\u3059\u3053\u3068<\/strong>\u3067\u3059\u3002<\/p>\n<span class=\"c-balloon__shapes\"><span class=\"c-balloon__before\"><\/span><span class=\"c-balloon__after\"><\/span><\/span><\/div><\/div><\/div><\/div>\n\n\n<h3 class=\"wp-block-heading\">\u8907\u5408\u30ad\u30fc\u306e\u30ea\u30ec\u30fc\u30b7\u30e7\u30f3\u306f\u5225\u6271\u3044\u306b\u3059\u308b<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u53d7\u6ce8\u756a\u53f7\u3068\u884c\u756a\u53f7\u306e\u4e21\u65b9\u3067\u5225\u30c6\u30fc\u30d6\u30eb\u3078\u3064\u306a\u3050\u5834\u5408\u3001\u901a\u5e38\u306eEloquent\u30ea\u30ec\u30fc\u30b7\u30e7\u30f3\u3067\u306f\u82e6\u3057\u304f\u306a\u308a\u307e\u3059\u3002 \u305f\u3068\u3048\u3070\u3001\u660e\u7d30\u3054\u3068\u306e\u691c\u54c1\u7d50\u679c\u304c <code>order_no + line_no<\/code> \u3067\u3064\u306a\u304c\u308b\u3088\u3046\u306a\u5f62\u3067\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#2e3440\"><span style=\"background:#c8d0e0;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#2e3440\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>Schema::create('inspection_results', function (Blueprint $table) {\n    $table->string('order_no', 20);\n    $table->unsignedInteger('line_no');\n    $table->string('result', 20);\n    $table->timestamps();\n\n    $table->primary(&#91;'order_no', 'line_no'&#93;);\n});<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #8FBCBB\">Schema<\/span><span style=\"color: #81A1C1\">::<\/span><span style=\"color: #88C0D0\">create<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">inspection_results<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">function<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #8FBCBB\">Blueprint<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">table<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">table<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">string<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">20<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">table<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">unsignedInteger<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">line_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">table<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">string<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">result<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">20<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">table<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">timestamps<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">table<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">primary<\/span><span style=\"color: #ECEFF4\">(&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">line_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">})<\/span><span style=\"color: #81A1C1\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u306e\u95a2\u4fc2\u3092Eloquent\u306e\u6a19\u6e96\u30ea\u30ec\u30fc\u30b7\u30e7\u30f3\u3060\u3051\u3067\u81ea\u7136\u306b\u66f8\u3053\u3046\u3068\u3059\u308b\u3068\u3001\u8907\u6570\u30ab\u30e9\u30e0\u3092\u540c\u6642\u306b\u5bfe\u5fdc\u3055\u305b\u308b\u3068\u3053\u308d\u3067\u6b62\u307e\u308a\u307e\u3059\u3002 <code>whereColumn<\/code> \u3084\u660e\u793aJOIN\u3067\u53d6\u308b\u304b\u3001\u8907\u5408\u30ea\u30ec\u30fc\u30b7\u30e7\u30f3\u5bfe\u5fdc\u306e\u30d1\u30c3\u30b1\u30fc\u30b8\u3092\u691c\u8a0e\u3059\u308b\u304b\u3001\u753b\u9762\u7528\u306e\u53d6\u5f97\u51e6\u7406\u3068\u3057\u3066\u5207\u308a\u51fa\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#2e3440\"><span style=\"background:#c8d0e0;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#2e3440\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>$lines = DB::table('order_lines')\n    ->leftJoin('inspection_results', function ($join) {\n        $join->on('order_lines.order_no', '=', 'inspection_results.order_no')\n            ->on('order_lines.line_no', '=', 'inspection_results.line_no');\n    })\n    ->where('order_lines.order_no', $orderNo)\n    ->select(&#91;\n        'order_lines.order_no',\n        'order_lines.line_no',\n        'order_lines.product_code',\n        'inspection_results.result',\n    &#93;)\n    ->orderBy('order_lines.line_no')\n    ->get();<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">lines<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">DB<\/span><span style=\"color: #81A1C1\">::<\/span><span style=\"color: #88C0D0\">table<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_lines<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">leftJoin<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">inspection_results<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">function<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">join<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">join<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">on<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_lines.order_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">=<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">inspection_results.order_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">on<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_lines.line_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">=<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">inspection_results.line_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">})<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">where<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_lines.order_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">orderNo<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">select<\/span><span style=\"color: #ECEFF4\">(&#91;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_lines.order_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_lines.line_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_lines.product_code<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">inspection_results.result<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">&#93;)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">orderBy<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_lines.line_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">get<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<div style=\"border-color:#f1d48b;border-width:1px;border-style:solid;border-radius:8px;background-color:#fff8e6;margin-top:1.8em;margin-bottom:2em;padding:16px 18px\"><p style=\"line-height:2;margin:0\">\u8907\u5408\u30ad\u30fc\u306e\u30ea\u30ec\u30fc\u30b7\u30e7\u30f3\u3092\u30d1\u30c3\u30b1\u30fc\u30b8\u3067\u66f8\u3051\u308b\u3088\u3046\u306b\u3057\u3066\u3082\u3001\u66f4\u65b0\u3084\u524a\u9664\u307e\u3067\u5b89\u5168\u306b\u306a\u308b\u3068\u306f\u9650\u308a\u307e\u305b\u3093\u3002\u53c2\u7167\u304c\u697d\u306b\u306a\u308b\u8a71\u3068\u3001\u30c7\u30fc\u30bf\u3092\u5909\u66f4\u3059\u308b\u8cac\u4efb\u7bc4\u56f2\u306f\u5206\u3051\u3066\u78ba\u8a8d\u3057\u307e\u3059\u3002<\/p><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">Query Builder\u3067\u5909\u3048\u308b\u51e6\u7406<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u66f4\u65b0\u306f\u8907\u5408\u30ad\u30fc\u3092WHERE\u53e5\u3078\u51fa\u3059<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u6570\u91cf\u3084\u5358\u4fa1\u3092\u5909\u3048\u308b\u51e6\u7406\u3067\u306f\u3001Query Builder\u3067\u66f4\u65b0\u5bfe\u8c61\u3092\u660e\u793a\u3057\u307e\u3059\u3002 <code>order_no<\/code> \u3068 <code>line_no<\/code> \u306e\u4e21\u65b9\u3092WHERE\u53e5\u306b\u51fa\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#2e3440\"><span style=\"background:#c8d0e0;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#2e3440\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>$affected = DB::table('order_lines')\n    ->where('order_no', $orderNo)\n    ->where('line_no', $lineNo)\n    ->update(&#91;\n        'qty' => $qty,\n        'unit_price' => $unitPrice,\n        'updated_at' => now(),\n    &#93;);<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">affected<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">DB<\/span><span style=\"color: #81A1C1\">::<\/span><span style=\"color: #88C0D0\">table<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_lines<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">where<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">orderNo<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">where<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">line_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">lineNo<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">update<\/span><span style=\"color: #ECEFF4\">(&#91;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">qty<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">qty<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">unit_price<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">unitPrice<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">updated_at<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">now<\/span><span style=\"color: #ECEFF4\">(),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">&#93;)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u66f4\u65b0\u4ef6\u6570\u3082\u78ba\u8a8d\u3057\u307e\u3059\u3002 \u5bfe\u8c61\u306f1\u4ef6\u306e\u306f\u305a\u3067\u3059\u3002<code>0<\/code> \u4ef6\u306a\u3089\u3001\u5bfe\u8c61\u884c\u304c\u306a\u3044\u3001\u3059\u3067\u306b\u524a\u9664\u3055\u308c\u305f\u3001\u5225\u306e\u72b6\u614b\u6761\u4ef6\u3067\u5f3e\u304b\u308c\u305f\u3001\u306a\u3069\u3092\u8abf\u3079\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#2e3440\"><span style=\"background:#c8d0e0;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#2e3440\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>if ($affected !== 1) {\n    throw new RuntimeException('\u53d7\u6ce8\u660e\u7d30\u306e\u66f4\u65b0\u5bfe\u8c61\u304c1\u4ef6\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002');\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">if<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">affected<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">!==<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">1<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">throw<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">new<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">RuntimeException<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">\u53d7\u6ce8\u660e\u7d30\u306e\u66f4\u65b0\u5bfe\u8c61\u304c1\u4ef6\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u306e\u66f8\u304d\u65b9\u306b\u3059\u308b\u3068\u3001\u30ec\u30d3\u30e5\u30fc\u6642\u306b\u300c\u3069\u306e\u5217\u30671\u884c\u3092\u7279\u5b9a\u3057\u3066\u3044\u308b\u304b\u300d\u304c\u898b\u3048\u307e\u3059\u3002 Eloquent\u306e\u5185\u90e8\u306b\u4e3b\u30ad\u30fc\u89e3\u6c7a\u3092\u4efb\u305b\u306a\u3044\u305f\u3081\u3001\u8907\u5408\u4e3b\u30ad\u30fc\u306e\u524d\u63d0\u3092\u30b3\u30fc\u30c9\u3067\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u524a\u9664\u306f\u7247\u65b9\u306e\u30ad\u30fc\u3060\u3051\u3067\u66f8\u304b\u306a\u3044<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u524a\u9664\u306f\u3055\u3089\u306b\u6ce8\u610f\u3057\u307e\u3059\u3002 <code>order_no<\/code> \u3060\u3051\u3067\u524a\u9664\u3059\u308b\u3068\u3001\u305d\u306e\u53d7\u6ce8\u306e\u5168\u660e\u7d30\u304c\u6d88\u3048\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#2e3440\"><span style=\"background:#c8d0e0;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#2e3440\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>DB::table('order_lines')\n    ->where('order_no', $orderNo)\n    ->delete();<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #8FBCBB\">DB<\/span><span style=\"color: #81A1C1\">::<\/span><span style=\"color: #88C0D0\">table<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_lines<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">where<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">orderNo<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">delete<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">1\u884c\u524a\u9664\u306a\u3089\u3001\u884c\u756a\u53f7\u307e\u3067\u6761\u4ef6\u306b\u542b\u3081\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#2e3440\"><span style=\"background:#c8d0e0;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#2e3440\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>$deleted = DB::table('order_lines')\n    ->where('order_no', $orderNo)\n    ->where('line_no', $lineNo)\n    ->delete();<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">deleted<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">DB<\/span><span style=\"color: #81A1C1\">::<\/span><span style=\"color: #88C0D0\">table<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_lines<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">where<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">orderNo<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">where<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">line_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">lineNo<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">delete<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u51fa\u8377\u6e08\u307f\u3084\u7de0\u3081\u6e08\u307f\u3092\u524a\u9664\u3055\u305b\u306a\u3044\u306a\u3089\u3001\u72b6\u614b\u6761\u4ef6\u3082\u540c\u3058SQL\u306b\u5165\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#2e3440\"><span style=\"background:#c8d0e0;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#2e3440\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>$deleted = DB::table('order_lines')\n    ->where('order_no', $orderNo)\n    ->where('line_no', $lineNo)\n    ->where('shipment_status', 'before_shipment')\n    ->delete();<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">deleted<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">DB<\/span><span style=\"color: #81A1C1\">::<\/span><span style=\"color: #88C0D0\">table<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_lines<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">where<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">orderNo<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">where<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">line_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">lineNo<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">where<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">shipment_status<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">before_shipment<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">delete<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"swl-marker mark_orange\"><strong>\u8907\u5408\u30ad\u30fc\u306e\u7247\u65b9\u3060\u3051\u3067\u524a\u9664\u3067\u304d\u308b\u30b3\u30fc\u30c9\u306f\u3001\u4e8b\u6545\u306e\u5165\u53e3\u3067\u3059<\/strong><\/span> \u753b\u9762\u4e0a\u306f\u300c1\u884c\u524a\u9664\u300d\u306b\u898b\u3048\u3066\u3082\u3001SQL\u3067\u306f\u8907\u6570\u884c\u3092\u5bfe\u8c61\u306b\u3057\u3066\u3044\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">Repository\u306b\u5bc4\u305b\u3066\u6761\u4ef6\u3092\u6563\u3089\u3055\u306a\u3044<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">Query Builder\u3067\u66f8\u304f\u304b\u3089\u3068\u3044\u3063\u3066\u3001\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306b <code>where<\/code> \u3092\u4f55\u5ea6\u3082\u4e26\u3079\u308b\u5fc5\u8981\u306f\u3042\u308a\u307e\u305b\u3093\u3002 \u8907\u5408\u30ad\u30fc\u3067\u63a2\u3059\u51e6\u7406\u3001\u66f4\u65b0\u3059\u308b\u51e6\u7406\u3092Repository\u3084Service\u306b\u5bc4\u305b\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#2e3440\"><span style=\"background:#c8d0e0;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#2e3440\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>class OrderLineRepository\n{\n    public function find(string $orderNo, int $lineNo): ?object\n    {\n        return DB::table('order_lines')\n            ->where('order_no', $orderNo)\n            ->where('line_no', $lineNo)\n            ->first();\n    }\n\n    public function updatePrice(\n        string $orderNo,\n        int $lineNo,\n        int $qty,\n        int $unitPrice\n    ): int {\n        return DB::table('order_lines')\n            ->where('order_no', $orderNo)\n            ->where('line_no', $lineNo)\n            ->update(&#91;\n                'qty' => $qty,\n                'unit_price' => $unitPrice,\n                'updated_at' => now(),\n            &#93;);\n    }\n}<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">class<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">OrderLineRepository<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">public<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">function<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">find<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">string<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">orderNo<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">int<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">lineNo<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">?object<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">return<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">DB<\/span><span style=\"color: #81A1C1\">::<\/span><span style=\"color: #88C0D0\">table<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_lines<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">where<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">orderNo<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">where<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">line_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">lineNo<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">first<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">public<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">function<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">updatePrice<\/span><span style=\"color: #ECEFF4\">(<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">string<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">orderNo<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">int<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">lineNo<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">int<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">qty<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">int<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">unitPrice<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">:<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">int<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">        <\/span><span style=\"color: #81A1C1\">return<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">DB<\/span><span style=\"color: #81A1C1\">::<\/span><span style=\"color: #88C0D0\">table<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_lines<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">where<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">orderNo<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">where<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">line_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">lineNo<\/span><span style=\"color: #ECEFF4\">)<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">update<\/span><span style=\"color: #ECEFF4\">(&#91;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">qty<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">qty<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">unit_price<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">unitPrice<\/span><span style=\"color: #ECEFF4\">,<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">                <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">updated_at<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=&gt;<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #88C0D0\">now<\/span><span style=\"color: #ECEFF4\">(),<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">            <\/span><span style=\"color: #ECEFF4\">&#93;)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #ECEFF4\">}<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">}<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u3053\u307e\u3067\u5207\u308a\u51fa\u3059\u3068\u3001\u30b3\u30f3\u30c8\u30ed\u30fc\u30e9\u30fc\u306f\u8907\u5408\u30ad\u30fc\u306eSQL\u3092\u76f4\u63a5\u77e5\u308a\u307e\u305b\u3093\u3002 \u305f\u3060\u3057\u3001Repository\u306e\u4e2d\u3067\u306f\u30ad\u30fc\u6761\u4ef6\u3092\u7701\u7565\u3057\u307e\u305b\u3093\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><span class=\"swl-marker mark_yellow\">Query Builder\u3092\u4f7f\u3046\u3053\u3068\u3068\u3001SQL\u3092\u30a2\u30d7\u30ea\u4e2d\u306b\u6563\u3089\u3059\u3053\u3068\u306f\u5225\u3067\u3059\u3002<\/span> \u8907\u5408\u30ad\u30fc\u306e\u6761\u4ef6\u306f\u660e\u793a\u3057\u3064\u3064\u3001\u7f6e\u304d\u5834\u6240\u3092\u6c7a\u3081\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">id\u8ffd\u52a0\u3067\u9003\u304c\u305b\u308b\u5834\u9762<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u65b0\u898f\u8a2d\u8a08\u306a\u3089id\u3068\u8907\u5408unique\u3092\u5206\u3051\u308b<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u65b0\u3057\u304fLaravel\u3067\u4f5c\u308b\u30c6\u30fc\u30d6\u30eb\u306a\u3089\u3001<code>id<\/code> \u3092\u4e3b\u30ad\u30fc\u306b\u3057\u3066\u3001\u696d\u52d9\u30ad\u30fc\u306f\u8907\u5408unique\u3067\u5b88\u308b\u8a2d\u8a08\u3082\u5019\u88dc\u306b\u306a\u308a\u307e\u3059\u3002 Eloquent\u306f <code>id<\/code> \u3067\u30e2\u30c7\u30eb\u3092\u8b58\u5225\u3067\u304d\u3001DB\u306f <code>order_no + line_no<\/code> \u306e\u91cd\u8907\u3092\u6b62\u3081\u3089\u308c\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(2 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#2e3440\"><span style=\"background:#c8d0e0;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#2e3440\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>Schema::create('order_lines', function (Blueprint $table) {\n    $table->id();\n    $table->string('order_no', 20);\n    $table->unsignedInteger('line_no');\n    $table->string('product_code', 30);\n    $table->integer('qty');\n    $table->integer('unit_price');\n    $table->timestamps();\n\n    $table->unique(&#91;'order_no', 'line_no'&#93;);\n});<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #8FBCBB\">Schema<\/span><span style=\"color: #81A1C1\">::<\/span><span style=\"color: #88C0D0\">create<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_lines<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">function<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #8FBCBB\">Blueprint<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">table<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">{<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">table<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">id<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">table<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">string<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">20<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">table<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">unsignedInteger<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">line_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">table<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">string<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">product_code<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">30<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">table<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">integer<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">qty<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">table<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">integer<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">unit_price<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">table<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">timestamps<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">    <\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">table<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">unique<\/span><span style=\"color: #ECEFF4\">(&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">line_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">})<\/span><span style=\"color: #81A1C1\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u306e\u5f62\u306a\u3089\u3001Eloquent\u306e <code>find()<\/code>\u3001<code>save()<\/code>\u3001<code>delete()<\/code> \u306f <code>id<\/code> \u3092\u4f7f\u3048\u307e\u3059\u3002 \u696d\u52d9\u4e0a\u306e\u91cd\u8907\u306f\u3001\u8907\u5408unique\u3067\u5b88\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#2e3440\"><span style=\"background:#c8d0e0;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#2e3440\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>$line = OrderLine::findOrFail($id);\n$line->qty = 3;\n$line->save();<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">line<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #8FBCBB\">OrderLine<\/span><span style=\"color: #81A1C1\">::<\/span><span style=\"color: #88C0D0\">findOrFail<\/span><span style=\"color: #ECEFF4\">(<\/span><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">id<\/span><span style=\"color: #ECEFF4\">)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">line<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #D8DEE9\">qty<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #81A1C1\">=<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #B48EAD\">3<\/span><span style=\"color: #81A1C1\">;<\/span><\/span>\n<span class=\"line\"><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">line<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">save<\/span><span style=\"color: #ECEFF4\">()<\/span><span style=\"color: #81A1C1\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u65b0\u898f\u958b\u767a\u3067\u306f\u3001\u3053\u306e\u5f62\u306e\u65b9\u304cLaravel\u306b\u5bc4\u305b\u3084\u3059\u3044\u3067\u3059\u3002 \u30a2\u30d7\u30ea\u306e\u8b58\u5225\u5b50\u3068\u3001\u696d\u52d9\u4e0a\u306e\u4e00\u610f\u6761\u4ef6\u3092\u5206\u3051\u3089\u308c\u308b\u304b\u3089\u3067\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u904b\u7528\u4e2d\u306e\u696d\u52d9\u30ad\u30fc\u306f\u52dd\u624b\u306b\u6d88\u3055\u306a\u3044<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u3059\u3067\u306b\u52d5\u3044\u3066\u3044\u308b\u30c6\u30fc\u30d6\u30eb\u3067\u306f\u3001<code>id<\/code> \u3092\u8db3\u305b\u3070\u7d42\u308f\u308a\u3068\u306f\u9650\u308a\u307e\u305b\u3093\u3002 \u5e33\u7968\u3001\u5916\u90e8\u9023\u643a\u3001CSV\u3001\u30d0\u30c3\u30c1\u3001\u4fdd\u5b88SQL\u304c\u3001<code>order_no + line_no<\/code> \u3092\u524d\u63d0\u306b\u3057\u3066\u3044\u308b\u3053\u3068\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\"><code>id<\/code> \u3092\u8db3\u3057\u3066\u3082\u3001\u5916\u90e8\u30b7\u30b9\u30c6\u30e0\u304c\u9001\u3063\u3066\u304f\u308b\u30ad\u30fc\u304c\u53d7\u6ce8\u756a\u53f7\u3068\u884c\u756a\u53f7\u306a\u3089\u3001\u696d\u52d9\u30ad\u30fc\u306f\u6b8b\u308a\u307e\u3059\u3002 \u554f\u3044\u5408\u308f\u305b\u5bfe\u5fdc\u3067\u3082\u3001\u5229\u7528\u8005\u306f\u300cid 12345\u300d\u3067\u306f\u306a\u304f\u300cSO-1001\u306e1\u884c\u76ee\u300d\u3068\u8a00\u3044\u307e\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u306e\u5834\u5408\u3001\u307e\u305a\u5f71\u97ff\u3092\u68da\u5378\u3057\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-table\" style=\"margin-bottom:2em\"><table><thead><tr><th>\u78ba\u8a8d\u5bfe\u8c61<\/th><th>\u898b\u308b\u3053\u3068<\/th><th>\u7406\u7531<\/th><\/tr><\/thead><tbody><tr><td>\u753b\u9762<\/td><td>URL\u3084hidden\u5024\u3067\u3069\u306e\u30ad\u30fc\u3092\u6301\u3064\u304b<\/td><td>\u66f4\u65b0\u5bfe\u8c61\u306e\u7279\u5b9a\u306b\u95a2\u308f\u308b<\/td><\/tr><tr><td>\u5e33\u7968<\/td><td>\u660e\u7d30\u756a\u53f7\u3084\u679d\u756a\u3092\u51fa\u529b\u3057\u3066\u3044\u308b\u304b<\/td><td>\u5229\u7528\u8005\u304c\u696d\u52d9\u30ad\u30fc\u3067\u7167\u5408\u3059\u308b<\/td><\/tr><tr><td>\u5916\u90e8\u9023\u643a<\/td><td>\u9023\u643a\u30d5\u30a1\u30a4\u30eb\u3084API\u306e\u30ad\u30fc\u9805\u76ee<\/td><td>\u76f8\u624b\u5074\u306e\u30ad\u30fc\u306f\u7c21\u5358\u306b\u5909\u3048\u3089\u308c\u306a\u3044<\/td><\/tr><tr><td>\u30d0\u30c3\u30c1<\/td><td>\u66f4\u65b0\u3068\u524a\u9664\u306eWHERE\u6761\u4ef6<\/td><td>\u6761\u4ef6\u4e0d\u8db3\u306e\u66f4\u65b0\u4e8b\u6545\u3092\u898b\u3064\u3051\u308b<\/td><\/tr><tr><td>\u4fdd\u5b88SQL<\/td><td>\u8abf\u67fb\u6642\u306b\u3069\u306e\u30ad\u30fc\u3067\u691c\u7d22\u3057\u3066\u3044\u308b\u304b<\/td><td>\u969c\u5bb3\u8abf\u67fb\u306e\u624b\u9806\u304c\u5909\u308f\u308b<\/td><\/tr><\/tbody><\/table><\/div>\n\n\n<div class=\"swell-block-balloon\"><div class=\"c-balloon -bln-left\" data-col=\"gray\"><div class=\"c-balloon__icon -circle\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/blog.nexive.tech\/wp-content\/uploads\/2026\/05\/big-smile-150x150.png\" alt=\"\" class=\"c-balloon__iconImg\" width=\"80px\" height=\"80px\"><span class=\"c-balloon__iconName\">tomo<\/span><\/div><div class=\"c-balloon__body -speaking -border-on\"><div class=\"c-balloon__text\">\n<p><code>id<\/code> \u3092\u8db3\u3059\u304b\u3069\u3046\u304b\u306f\u3001Laravel\u306e\u597d\u307f\u3060\u3051\u3067\u6c7a\u3081\u307e\u305b\u3093\u3002\u696d\u52d9\u3067\u305d\u306e\u884c\u3092\u3069\u3046\u547c\u3073\u3001\u3069\u306e\u9023\u643a\u304c\u305d\u306e\u30ad\u30fc\u3092\u4f7f\u3046\u304b\u3092\u898b\u308b\u3068\u3001\u5909\u3048\u3066\u3088\u3044\u7bc4\u56f2\u304c\u898b\u3048\u3066\u304d\u307e\u3059\u3002<\/p>\n<span class=\"c-balloon__shapes\"><span class=\"c-balloon__before\"><\/span><span class=\"c-balloon__after\"><\/span><\/span><\/div><\/div><\/div><\/div>\n\n\n<h3 class=\"wp-block-heading\">DB\u5236\u7d04\u3092\u753b\u9762\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u306e\u4ee3\u308f\u308a\u306b\u3057\u306a\u3044<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\"><code>id<\/code> \u3092\u8db3\u3057\u305f\u5834\u5408\u3067\u3082\u3001<code>order_no + line_no<\/code> \u306e\u4e00\u610f\u6027\u306fDB\u3067\u5b88\u308a\u307e\u3059\u3002 \u753b\u9762\u306e\u30d0\u30ea\u30c7\u30fc\u30b7\u30e7\u30f3\u3060\u3051\u3067\u91cd\u8907\u3092\u9632\u3054\u3046\u3068\u3059\u308b\u3068\u3001CSV\u53d6\u8fbc\u3084API\u3001\u30d0\u30c3\u30c1\u304b\u3089\u91cd\u8907\u304c\u5165\u308b\u53ef\u80fd\u6027\u304c\u3042\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#2e3440\"><span style=\"background:#c8d0e0;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#2e3440\">PHP<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>$table->unique(&#91;'order_no', 'line_no'&#93;);<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #81A1C1\">$<\/span><span style=\"color: #D8DEE9\">table<\/span><span style=\"color: #81A1C1\">-&gt;<\/span><span style=\"color: #88C0D0\">unique<\/span><span style=\"color: #ECEFF4\">(&#91;<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">order_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">,<\/span><span style=\"color: #D8DEE9FF\"> <\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #A3BE8C\">line_no<\/span><span style=\"color: #ECEFF4\">&#39;<\/span><span style=\"color: #ECEFF4\">&#93;)<\/span><span style=\"color: #81A1C1\">;<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u8907\u5408\u4e3b\u30ad\u30fc\u3092\u3084\u3081\u308b\u5834\u5408\u3067\u3082\u3001\u696d\u52d9\u30ad\u30fc\u306e\u4e00\u610f\u6027\u3092\u6368\u3066\u308b\u308f\u3051\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002 \u4e3b\u30ad\u30fc\u3092 <code>id<\/code> \u306b\u3059\u308b\u306a\u3089\u3001\u696d\u52d9\u30ad\u30fc\u306funique\u5236\u7d04\u3078\u79fb\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\">\u30ec\u30d3\u30e5\u30fc\u3067\u898b\u308b\u5883\u754c<\/h2>\n\n\n\n<h3 class=\"wp-block-heading\">\u307e\u305a\u51e6\u7406\u3054\u3068\u306b\u5206\u3051\u308b<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u8907\u5408\u4e3b\u30ad\u30fc\u306e\u30c6\u30fc\u30d6\u30eb\u306b\u51fa\u4f1a\u3063\u305f\u3089\u3001\u6700\u521d\u306b\u51e6\u7406\u3092\u5206\u3051\u307e\u3059\u3002 \u30c6\u30fc\u30d6\u30eb\u5358\u4f4d\u3067\u300cEloquent\u3092\u4f7f\u3046\u300d\u300c\u4f7f\u308f\u306a\u3044\u300d\u3068\u6c7a\u3081\u308b\u3088\u308a\u3001\u4e8b\u6545\u304c\u6e1b\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-table\" style=\"margin-bottom:2em\"><table><thead><tr><th>\u51e6\u7406<\/th><th>\u5bc4\u305b\u65b9<\/th><th>\u78ba\u8a8d\u3059\u308b\u3053\u3068<\/th><\/tr><\/thead><tbody><tr><td>\u4e00\u89a7\u691c\u7d22<\/td><td>Eloquent\u5bc4\u308a<\/td><td>\u8aad\u307f\u53d6\u308a\u3067\u9589\u3058\u3066\u3044\u308b\u304b<\/td><\/tr><tr><td>\u8a73\u7d30\u53c2\u7167<\/td><td>\u6761\u4ef6\u6b21\u7b2c<\/td><td>\u8907\u5408\u30ad\u30fc\u53d6\u5f97\u30e1\u30bd\u30c3\u30c9\u3092\u7528\u610f\u3057\u3066\u3044\u308b\u304b<\/td><\/tr><tr><td>1\u4ef6\u66f4\u65b0<\/td><td>Query Builder\u5bc4\u308a<\/td><td>\u8907\u5408\u30ad\u30fc\u3068\u72b6\u614b\u6761\u4ef6\u304cWHERE\u53e5\u306b\u3042\u308b\u304b<\/td><\/tr><tr><td>\u524a\u9664<\/td><td>Query Builder\u5bc4\u308a<\/td><td>\u524a\u9664\u4ef6\u6570\u3092\u78ba\u8a8d\u3057\u3066\u3044\u308b\u304b<\/td><\/tr><tr><td>\u8907\u5408\u30ad\u30fc\u306e\u30ea\u30ec\u30fc\u30b7\u30e7\u30f3<\/td><td>\u614e\u91cd\u306b\u5224\u65ad<\/td><td>JOIN\u3084\u30d1\u30c3\u30b1\u30fc\u30b8\u306e\u4fdd\u5b88\u7bc4\u56f2\u3092\u898b\u305f\u304b<\/td><\/tr><tr><td>\u65b0\u898f\u8a2d\u8a08<\/td><td>id + \u8907\u5408unique\u3082\u691c\u8a0e<\/td><td>Eloquent\u306e\u8b58\u5225\u5b50\u3068\u696d\u52d9\u30ad\u30fc\u3092\u5206\u3051\u308b\u304b<\/td><\/tr><tr><td>\u904b\u7528\u4e2d\u30c6\u30fc\u30d6\u30eb\u306e\u5909\u66f4<\/td><td>\u5f71\u97ff\u8abf\u67fb\u3057\u3066\u304b\u3089\u5224\u65ad<\/td><td>\u5e33\u7968\u3001\u9023\u643a\u3001\u30d0\u30c3\u30c1\u3001\u4fdd\u5b88SQL\u3092\u78ba\u8a8d\u3057\u305f\u304b<\/td><\/tr><\/tbody><\/table><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">\u3053\u306e\u8868\u304c\u3042\u308b\u3068\u3001\u30ec\u30d3\u30e5\u30fc\u3067\u898b\u308b\u5834\u6240\u304c\u6c7a\u307e\u308a\u307e\u3059\u3002 \u300c\u52d5\u3044\u305f\u304b\u300d\u3060\u3051\u3067\u306f\u306a\u304f\u3001\u300c\u3069\u306e\u51e6\u7406\u3092Eloquent\u306b\u5bc4\u305b\u3001\u3069\u306e\u51e6\u7406\u3092Query Builder\u306b\u9003\u304c\u3057\u305f\u304b\u300d\u3092\u78ba\u8a8d\u3067\u304d\u307e\u3059\u3002<\/p>\n\n\n\n<h3 class=\"wp-block-heading\">\u30a8\u30e9\u30fc\u4f8b\u3092\u30c6\u30b9\u30c8\u306b\u6b8b\u3059<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u8907\u5408\u4e3b\u30ad\u30fc\u306e\u6271\u3044\u306f\u3001\u53e3\u982d\u8aac\u660e\u3060\u3051\u3060\u3068\u5fd8\u308c\u3089\u308c\u307e\u3059\u3002 \u30c1\u30fc\u30e0\u3067\u540c\u3058\u5224\u65ad\u3092\u4fdd\u3064\u306a\u3089\u3001\u30c6\u30b9\u30c8\u3084\u30e1\u30e2\u306b\u30a8\u30e9\u30fc\u4f8b\u3092\u6b8b\u3057\u307e\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#2e3440\"><span style=\"background:#c8d0e0;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#2e3440\">Markdown<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>NG\u4f8b:\n- id\u5217\u304c\u306a\u3044\u8907\u5408\u4e3b\u30ad\u30fc\u30c6\u30fc\u30d6\u30eb\u3067Eloquent\u306esave()\u3092\u4f7f\u3046\n- $primaryKey\u306b\u914d\u5217\u3092\u5165\u308c\u3066Eloquent\u4fdd\u5b58\u51e6\u7406\u3092\u671f\u5f85\u3059\u308b\n- order_no\u3060\u3051\u3067\u53d7\u6ce8\u660e\u7d30\u3092delete\u3059\u308b\n\nOK\u4f8b:\n- \u4e00\u89a7\u691c\u7d22\u306fEloquent\u3067\u8aad\u3080\n- \u66f4\u65b0\u3068\u524a\u9664\u306fQuery Builder\u3067order_no\u3068line_no\u3092\u660e\u793a\u3059\u308b\n- \u65b0\u898f\u8a2d\u8a08\u3067\u306fid\u3068\u8907\u5408unique\u3092\u691c\u8a0e\u3059\u308b<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9FF\">NG\u4f8b:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">-<\/span><span style=\"color: #D8DEE9FF\"> id\u5217\u304c\u306a\u3044\u8907\u5408\u4e3b\u30ad\u30fc\u30c6\u30fc\u30d6\u30eb\u3067Eloquent\u306esave()\u3092\u4f7f\u3046<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">-<\/span><span style=\"color: #D8DEE9FF\"> $primaryKey\u306b\u914d\u5217\u3092\u5165\u308c\u3066Eloquent\u4fdd\u5b58\u51e6\u7406\u3092\u671f\u5f85\u3059\u308b<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">-<\/span><span style=\"color: #D8DEE9FF\"> order_no\u3060\u3051\u3067\u53d7\u6ce8\u660e\u7d30\u3092delete\u3059\u308b<\/span><\/span>\n<span class=\"line\"><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">OK\u4f8b:<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">-<\/span><span style=\"color: #D8DEE9FF\"> \u4e00\u89a7\u691c\u7d22\u306fEloquent\u3067\u8aad\u3080<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">-<\/span><span style=\"color: #D8DEE9FF\"> \u66f4\u65b0\u3068\u524a\u9664\u306fQuery Builder\u3067order_no\u3068line_no\u3092\u660e\u793a\u3059\u308b<\/span><\/span>\n<span class=\"line\"><span style=\"color: #ECEFF4\">-<\/span><span style=\"color: #D8DEE9FF\"> \u65b0\u898f\u8a2d\u8a08\u3067\u306fid\u3068\u8907\u5408unique\u3092\u691c\u8a0e\u3059\u308b<\/span><\/span><\/code><\/pre><\/div>\n\n\n\n<p class=\"wp-block-paragraph\">SQL\u30ed\u30b0\u3084\u30a8\u30e9\u30fc\u6587\u3082\u6b8b\u3057\u307e\u3059\u3002 \u6b21\u306b\u540c\u3058\u73fe\u8c61\u304c\u51fa\u305f\u3068\u304d\u3001\u300c\u8907\u5408\u4e3b\u30ad\u30fc\u306e\u6271\u3044\u3067\u306f\u300d\u3068\u3059\u3050\u5f53\u305f\u308a\u3092\u4ed8\u3051\u3089\u308c\u308b\u304b\u3089\u3067\u3059\u3002<\/p>\n\n\n\n<div class=\"wp-block-kevinbatdorf-code-block-pro cbp-has-line-numbers\" data-code-block-pro-font-family=\"Code-Pro-JetBrains-Mono\" style=\"font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#d8dee9ff;--cbp-line-number-width:calc(1 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)\"><span style=\"display:flex;align-items:center;padding:16px 0 0 16px;width:100%;text-align:left;background-color:#2e3440\"><span style=\"background:#c8d0e0;padding:0.3rem 0.5rem 0.2rem;border-radius:1rem;font-size:0.8em;line-height:1;height:1.25rem;text-align:center;display:inline-flex;align-items:center;justify-content:center;color:#2e3440\">Markdown<\/span><\/span><span role=\"button\" tabindex=\"0\" style=\"color:#d8dee9ff;display:none\" aria-label=\"Copy\" class=\"code-block-pro-copy-button\"><pre class=\"code-block-pro-copy-button-pre\" aria-hidden=\"true\"><textarea class=\"code-block-pro-copy-button-textarea\" tabindex=\"-1\" aria-hidden=\"true\" readonly>update \"order_lines\" set ... where \"id\" is null\nIllegal offset type\nCannot access offset of type array on array<\/textarea><\/pre><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" style=\"width:24px;height:24px\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" stroke-width=\"2\"><path class=\"with-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4\"><\/path><path class=\"without-check\" stroke-linecap=\"round\" stroke-linejoin=\"round\" d=\"M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2\"><\/path><\/svg><\/span><pre class=\"shiki nord\" style=\"background-color: #2e3440ff\" tabindex=\"0\"><code><span class=\"line\"><span style=\"color: #D8DEE9FF\">update &quot;order_lines&quot; set ... where &quot;id&quot; is null<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">Illegal offset type<\/span><\/span>\n<span class=\"line\"><span style=\"color: #D8DEE9FF\">Cannot access offset of type array on array<\/span><\/span><\/code><\/pre><\/div>\n\n\n<div class=\"swell-block-balloon\"><div class=\"c-balloon -bln-left\" data-col=\"gray\"><div class=\"c-balloon__icon -circle\"><img decoding=\"async\" loading=\"lazy\" src=\"https:\/\/blog.nexive.tech\/wp-content\/uploads\/2026\/05\/concern-150x150.png\" alt=\"\" class=\"c-balloon__iconImg\" width=\"80px\" height=\"80px\"><span class=\"c-balloon__iconName\">tomo<\/span><\/div><div class=\"c-balloon__body -speaking -border-on\"><div class=\"c-balloon__text\">\n<p>\u30a8\u30e9\u30fc\u6587\u3092\u8abf\u67fb\u30e1\u30e2\u306b\u6b8b\u3055\u306a\u3044\u3068\u3001\u81ea\u5206\u306e\u753b\u9762\u3067\u8d77\u304d\u305f\u73fe\u8c61\u3068\u7d50\u3073\u4ed8\u3051\u3089\u308c\u307e\u305b\u3093\u3002\u8907\u5408\u4e3b\u30ad\u30fc\u306e\u8abf\u67fb\u3067\u306f\u3001\u3053\u3053\u3092\u7701\u304f\u3068\u4e00\u6c17\u306b\u5206\u304b\u3089\u306a\u304f\u306a\u308a\u307e\u3059\u3002<\/p>\n<span class=\"c-balloon__shapes\"><span class=\"c-balloon__before\"><\/span><span class=\"c-balloon__after\"><\/span><\/span><\/div><\/div><\/div><\/div>\n\n\n<h3 class=\"wp-block-heading\">\u6700\u5f8c\u306b\u5883\u754c\u3092\u6c7a\u3081\u308b<\/h3>\n\n\n\n<p class=\"wp-block-paragraph\">\u8907\u5408\u4e3b\u30ad\u30fc\u306e\u30c6\u30fc\u30d6\u30eb\u3067\u306f\u3001Laravel\u3067\u300c\u3067\u304d\u308b\u66f8\u304d\u65b9\u300d\u3092\u63a2\u3059\u524d\u306b\u3001\u51e6\u7406\u3054\u3068\u306e\u5883\u754c\u3092\u6c7a\u3081\u307e\u3059\u3002 \u8aad\u307f\u53d6\u308a\u306fEloquent\u3001\u66f4\u65b0\u3068\u524a\u9664\u306fQuery Builder\u3001\u696d\u52d9\u30ad\u30fc\u306e\u4e00\u610f\u6027\u306fDB\u5236\u7d04\u3067\u5b88\u308b\u3002 \u3053\u306e\u5206\u3051\u65b9\u306a\u3089\u3001Eloquent\u306e\u4fbf\u5229\u3055\u3092\u4f7f\u3044\u3064\u3064\u3001\u4fdd\u5b58\u51e6\u7406\u306e\u4e8b\u6545\u3092\u907f\u3051\u3084\u3059\u304f\u306a\u308a\u307e\u3059\u3002<\/p>\n\n\n\n<div style=\"border-color:#caecec;border-width:1px;border-style:solid;border-radius:8px;background-color:#f2fbfb;margin-top:1.8em;margin-bottom:2em;padding:16px 18px\"><p style=\"line-height:2;margin:0\">\u8907\u5408\u4e3b\u30ad\u30fc\u3067\u8a70\u307e\u3063\u305f\u3089\u3001\u307e\u305a\u30a8\u30e9\u30fc\u306e\u51fa\u308b\u5834\u6240\u3092\u78ba\u8a8d\u3057\u307e\u3059\u3002<code>id<\/code> \u5217\u3092\u63a2\u3057\u3066\u843d\u3061\u3066\u3044\u308b\u306e\u304b\u3001<code>$primaryKey<\/code> \u306e\u914d\u5217\u3067\u843d\u3061\u3066\u3044\u308b\u306e\u304b\u3002\u305d\u3053\u3092\u898b\u3066\u304b\u3089\u3001Eloquent\u3067\u8aad\u3080\u7bc4\u56f2\u3068Query Builder\u3067\u5909\u3048\u308b\u7bc4\u56f2\u3092\u6c7a\u3081\u307e\u3059\u3002<\/p><\/div>\n\n\n\n<h2 class=\"wp-block-heading\">\u307e\u3068\u3081<\/h2>\n\n\n\n<p class=\"wp-block-paragraph\">Laravel\u3067\u8907\u5408\u4e3b\u30ad\u30fc\u306e\u30c6\u30fc\u30d6\u30eb\u3092\u6271\u3046\u3068\u304d\u306f\u3001\u6700\u521d\u306b\u300cEloquent\u3067\u3069\u3046\u52d5\u304b\u3059\u304b\u300d\u3060\u3051\u3092\u8003\u3048\u308b\u3068\u8ff7\u3044\u307e\u3059\u3002 DB\u3067\u306f\u8907\u6570\u5217\u30671\u884c\u3092\u7279\u5b9a\u3067\u304d\u3066\u3082\u3001Eloquent\u306e\u4fdd\u5b58\u3084\u524a\u9664\u306f\u5358\u4e00\u4e3b\u30ad\u30fc\u3092\u524d\u63d0\u306b\u52d5\u304f\u305f\u3081\u3067\u3059\u3002<\/p>\n\n\n\n<p class=\"wp-block-paragraph\">\u5b9f\u88c5\u524d\u306b\u62bc\u3055\u3048\u308b\u8981\u70b9\u306f\u6b21\u306e\u901a\u308a\u3067\u3059\u3002<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li><code>order_no + line_no<\/code> \u306e\u3088\u3046\u306a\u8907\u5408\u4e3b\u30ad\u30fc\u306f\u3001\u53d7\u6ce8\u660e\u7d30\u3084\u5c65\u6b74\u7cfb\u306e\u696d\u52d9\u30c6\u30fc\u30d6\u30eb\u3067\u306f\u666e\u901a\u306b\u51fa\u3066\u304d\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u30de\u30a4\u30b0\u30ec\u30fc\u30b7\u30e7\u30f3\u3067\u8907\u5408\u4e3b\u30ad\u30fc\u3092\u4f5c\u308c\u308b\u3053\u3068\u3068\u3001Eloquent\u30e2\u30c7\u30eb\u304c\u8907\u5408\u4e3b\u30ad\u30fc\u3067 <code>save()<\/code> \u3067\u304d\u308b\u3053\u3068\u306f\u5225\u3067\u3059\u3002<\/li>\n\n\n\n<li><code>id<\/code> \u5217\u304c\u306a\u3044\u30e2\u30c7\u30eb\u3067 <code>save()<\/code> \u3059\u308b\u3068\u3001\u74b0\u5883\u306b\u3088\u3063\u3066\u306f <code>where \"id\" is null<\/code> \u306e\u3088\u3046\u306a\u66f4\u65b0\u306b\u306a\u308a\u3001\u610f\u56f3\u3057\u305f\u884c\u304c\u5909\u308f\u308a\u307e\u305b\u3093\u3002<\/li>\n\n\n\n<li><code>$primaryKey<\/code> \u306b\u914d\u5217\u3092\u5165\u308c\u308b\u3060\u3051\u3067\u306f\u3001<code>Illegal offset type<\/code> \u3084 <code>Cannot access offset of type array on array<\/code> \u306e\u3088\u3046\u306a\u30a8\u30e9\u30fc\u306b\u3064\u306a\u304c\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u4e00\u89a7\u8868\u793a\u3084\u691c\u7d22\u306e\u3088\u3046\u306a\u8aad\u307f\u53d6\u308a\u4e2d\u5fc3\u306e\u51e6\u7406\u306f\u3001Eloquent\u306b\u5bc4\u305b\u3066\u3082\u6271\u3048\u308b\u5834\u9762\u304c\u3042\u308a\u307e\u3059\u3002<\/li>\n\n\n\n<li>1\u4ef6\u66f4\u65b0\u3001\u524a\u9664\u3001\u72b6\u614b\u6761\u4ef6\u3092\u4f34\u3046\u5909\u66f4\u306f\u3001Query Builder\u3067 <code>order_no<\/code> \u3068 <code>line_no<\/code> \u3092WHERE\u53e5\u306b\u660e\u793a\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u65b0\u898f\u8a2d\u8a08\u306a\u3089\u3001<code>id<\/code> \u3092\u4e3b\u30ad\u30fc\u306b\u3057\u3066\u3001\u696d\u52d9\u30ad\u30fc\u306f\u8907\u5408unique\u3067\u5b88\u308b\u5f62\u3082\u691c\u8a0e\u3057\u307e\u3059\u3002<\/li>\n\n\n\n<li>\u3059\u3067\u306b\u52d5\u3044\u3066\u3044\u308b\u696d\u52d9\u30c6\u30fc\u30d6\u30eb\u3067\u306f\u3001\u5e33\u7968\u3001\u5916\u90e8\u9023\u643a\u3001\u30d0\u30c3\u30c1\u3001\u4fdd\u5b88SQL\u304c\u3069\u306e\u30ad\u30fc\u3092\u4f7f\u3063\u3066\u3044\u308b\u304b\u3092\u78ba\u8a8d\u3057\u3066\u304b\u3089\u5909\u3048\u307e\u3059\u3002<\/li>\n<\/ul>\n\n\n\n<p class=\"wp-block-paragraph\">\u8907\u5408\u4e3b\u30ad\u30fc\u306e\u5b9f\u88c5\u3067\u5927\u4e8b\u306a\u306e\u306f\u3001\u300c\u3067\u304d\u308b\u300d\u300c\u3067\u304d\u306a\u3044\u300d\u3067\u7d42\u308f\u3089\u305b\u306a\u3044\u3053\u3068\u3067\u3059\u3002 \u30a8\u30e9\u30fc\u6587\u3001\u5b9f\u884c\u3055\u308c\u305fSQL\u3001\u66f4\u65b0\u4ef6\u6570\u3001\u524a\u9664\u6761\u4ef6\u307e\u3067\u898b\u3066\u3001\u3069\u306e\u51e6\u7406\u3092Eloquent\u306b\u5bc4\u305b\u3001\u3069\u306e\u51e6\u7406\u3092Query Builder\u3067\u660e\u793a\u3059\u308b\u304b\u3092\u6c7a\u3081\u307e\u3059\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Laravel\u3067\u8907\u5408\u4e3b\u30ad\u30fc\u306e\u30c6\u30fc\u30d6\u30eb\u3092\u6271\u3046\u3068\u304d\u3001Eloquent\u306esave\u3084delete\u3067\u4f55\u304c\u58ca\u308c\u308b\u306e\u304b\u3092\u30a8\u30e9\u30fc\u4f8b\u304b\u3089\u78ba\u8a8d\u3057\u3001\u53c2\u7167\u3001\u66f4\u65b0\u3001\u524a\u9664\u3001\u30ea\u30ec\u30fc\u30b7\u30e7\u30f3\u3067Eloquent\u3068Query Builder\u3092\u3069\u3046\u5206\u3051\u308b\u304b\u6574\u7406\u3057\u307e\u3059\u3002<\/p>\n","protected":false},"author":1,"featured_media":1900,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"swell_btn_cv_data":"","footnotes":""},"categories":[239,242],"tags":[284,285,286,288],"class_list":["post-1899","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-business-system-development","category-sql-database","tag-laravel","tag-eloquent","tag-query-builder","tag-db"],"_links":{"self":[{"href":"https:\/\/blog.nexive.tech\/index.php?rest_route=\/wp\/v2\/posts\/1899","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.nexive.tech\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.nexive.tech\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.nexive.tech\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.nexive.tech\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1899"}],"version-history":[{"count":1,"href":"https:\/\/blog.nexive.tech\/index.php?rest_route=\/wp\/v2\/posts\/1899\/revisions"}],"predecessor-version":[{"id":1901,"href":"https:\/\/blog.nexive.tech\/index.php?rest_route=\/wp\/v2\/posts\/1899\/revisions\/1901"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blog.nexive.tech\/index.php?rest_route=\/wp\/v2\/media\/1900"}],"wp:attachment":[{"href":"https:\/\/blog.nexive.tech\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1899"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.nexive.tech\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1899"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.nexive.tech\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1899"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}