public function run() { $urls = array('sm21606267', 'sm22108018', 'sm22091259', 'sm22105280', 'sm22099716', 'im3518715', 'im3520973', 'im3520124'); $now = date('Y-m-d H:i:s'); $i = 0; foreach ($urls as $url) { Work::create(array('item_id' => mt_rand(1, 8), 'user_id' => mt_rand(1, 4), 'title' => 'タイトル', 'thumbnail_url' => 'http://tn-skr2.smilevideo.jp/smile?i=22130953', 'url' => $url, 'comment' => "{$url} の comment やで", 'created_at' => $now, 'updated_at' => $now)); } }
public function create() { if (!$this->has_post()) { return redirect_message(array('admin', $this->get_class(), 'add'), array('_flash_message' => '非 POST 方法,錯誤的頁面請求。')); } $posts = OAInput::post(); $cover = OAInput::file('cover'); $pictures = OAInput::file('pictures[]'); if (!$cover) { return redirect_message(array('admin', $this->get_class(), 'add'), array('_flash_message' => '請選擇照片(gif、jpg、png)檔案,或提供照片網址!', 'posts' => $posts)); } if ($msg = $this->_validation_posts($posts)) { return redirect_message(array('admin', $this->get_class(), 'add'), array('_flash_message' => $msg, 'posts' => $posts)); } $work = null; $create = Work::transaction(function () use($posts, $cover, &$work) { return verifyCreateOrm($work = Work::create(array_intersect_key($posts, Work::table()->columns))) && $work->cover->put($cover); }); if (!($create && $work)) { return redirect_message(array('admin', $this->get_class(), 'add'), array('_flash_message' => '新增失敗!', 'posts' => $posts)); } if ($posts['tag_ids'] && ($tag_ids = column_array(WorkTag::find('all', array('select' => 'id', 'conditions' => array('id IN (?)', $posts['tag_ids']))), 'id'))) { foreach ($tag_ids as $tag_id) { WorkTagMapping::transaction(function () use($tag_id, $work) { return verifyCreateOrm(WorkTagMapping::create(array_intersect_key(array('work_tag_id' => $tag_id, 'work_id' => $work->id), WorkTagMapping::table()->columns))); }); } } if ($blocks = $posts['blocks']) { foreach ($blocks as $block) { if (!($b = null) && WorkBlock::transaction(function () use($block, $work, &$b) { return verifyCreateOrm($b = WorkBlock::create(array_intersect_key(array_merge($block, array('work_id' => $work->id)), WorkBlock::table()->columns))); })) { if (($items = $block['items']) && $b) { foreach ($items as $item) { WorkBlockItem::transaction(function () use($item, $b) { return verifyCreateOrm(WorkBlockItem::create(array_intersect_key(array_merge($item, array('work_block_id' => $b->id)), WorkBlockItem::table()->columns))); }); } } } } } if ($pictures) { foreach ($pictures as $picture) { WorkPicture::transaction(function () use($picture, $work) { return verifyCreateOrm($pic = WorkPicture::create(array_intersect_key(array_merge($picture, array('work_id' => $work->id)), WorkPicture::table()->columns))) && $pic->name->put($picture); }); } } return redirect_message(($url = Session::getData('admin_works_index_url')) ? $url : array('admin', $this->get_class()), array('_flash_message' => '新增成功!')); }