WinRoadのLaravel4初心者講座

次世代PHPフレームワークのLaravel4を初心者向けに解説して参ります。

Winroad徒然草の管理人がお届けします
EloquentORMの複数代入

EloquentORMの複数代入

このエントリーをはてなブックマークに追加

EloquentORMでは、新しいモデルを作成するとき、モデルのコンストラクター*の属性に複数代入として紐付けられます。この便利な機能は、重大なセキュリティの欠陥になり得る可能性がありますので、デフォルトで複数代入されないように保護されています。

複数代入の属性定義

複数代入*を使用するには、fillable(許可)か、guarded(禁止)プロパティをモデルに設定する必要があります。

複数代入を許可する

class User extends Eloquent{
 protected $fillable=['first_name','last_name','email']);
 }

複数代入を禁止する

class User extends Eloquent{
 protected $guarded = ['id','password'];
 }

createメソッドで、複数代入

尚、モデルで上記を設定していれば、下記のようにcreateメソッドで、複数代入を行うことが出来ます。※逆に言えば、複数代入を設定していなければ、createメソッドは使用することは出来ません。

(例)app/controllers/UserController.php

<?php
 class UserController extends BaseController{
 public function getIndex($id){
 $data['user']=User::find($id);
 return View::make('user/create',$data);
 }
 public function postIndex(){
 $data['name']=Input::get('name');
 $data['email']=Input::get('email');
 $data['password']=Input::get('password');
 $user=User::create($data);
 return View::make('user/index');
 }

« »

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です