libro
www.tuyano.com
初心者のためのLaravel入門

ModelのCRUD (4/6)

作成:2016-02-28 08:52
更新:2016-02-28 08:52

■Modelの更新

続いて、Update(更新)についてです。LaravelのModelでは、レコードの更新は「save」というメソッドを使って行います。
Modelインスタンス->save();

こんな感じですね。テーブルから更新するModelインスタンスを取得し、その内容を書き換えてからsaveを呼び出せば、レコードを更新できます。

では、これもViewテンプレートから作りましょう。「views」フォルダ内に、「update.php」という名前でファイルを作成して下さい。そして下のリスト欄のように記述しておきましょう。ここではフォームを、
<form method="post" action="/helo/update">

このように用意してあります。つまり、HeloControllerupdateアクションで処理を行うようにするわけです。フォームには、name="id"<input type="hidden">を用意し、IDの値を非表示で追加してあります。

ふぉーむのそれぞれの項目には、value="<?php echo $data->id; ?>" というようにvalueの値を設定してあります。Controller側で更新するModelのインスタンスを取得し、$dataに設定してやれば、その内容がフォームに表示されるようにしているわけです。

※プログラムリストが表示されない場合

AddBlockなどの広告ブロックツールがONになっていると、プログラムリスト等が表示されない場合があります。これらのツールをOFFにしてみてください。

●プログラム・リスト●

<!doctype html>
<html>
<head>
    <title>Sample</title>
    <style>
    body { color:gray; }
    h1 { font-size:18pt; font-weight:bold; }
    th { color:white; background:#999; }
    td { color:black; background:#eee; padding:5px 10px; }
    </style>
</head>
<body>
    <h1>Sample</h1>
    <p><?php echo $message; ?></p>
    <table>
    <form method="post" action="/helo/update">
        <input type="hidden" name="id" value="<?php echo $data->id; ?>">
        <tr><td>NAME:</td><td>
        <input type="text" name="name" value="<?php echo $data->name; ?>"></td></tr>
        <tr><td>MAIL:</td><td>
        <input type="text" name="mail" value="<?php echo $data->mail; ?>"></td></tr>
        <tr><td>AGE:</td><td>
        <input type="text" name="age" value="<?php echo $data->age; ?>"></td></tr>
        <tr><td></td><td><input type="submit"></td></tr>
    </form>
    </table>
</body>
※関連コンテンツ

「初心者のためのLaravel入門」に戻る