Laravel5.4:Form作成(illuminate/htmlではなくて、laravelcollective/htmlで)

Why?

  • フォームヘルパーを使うと、Form作るのが楽になる
  • laravelcollective/htmlパッケージをプロジェクトに導入しなくてはならない
    • NG: illuminate/html メンテ止まってる
    • OK: laravelcollective/html メンテされてる
  • Laravel Collective は、Laravel本体から外されたパッケージをメンテするプロジェクト

How to?

laravelcollective/htmlをプロジェクトに追加

  • インストールコマンドでvendorに追加(何気に時間がかかる)
$ composer require laravelcollective/html
  • その結果、composer.json に laravelcollective/html が追加され、インストールもされた
$ cat composer.json
{
    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.6.4",
        "laravel/framework": "5.4.*",
        "laravel/tinker": "~1.0",
        "laravelcollective/html": "^5.4"
    },
...
  • ProviderとAliaseを登録
    'providers' => [
...
        CollectiveHtmlHtmlServiceProvider::class,
...

    'aliases' => [
...
        'Form' => CollectiveHtmlFormFacade::class,
        'Html' => CollectiveHtmlHtmlFacade::class
...

登録フォームの実装

  • Routingを追加(順番注意): routes/web.php
Route::get('articles', 'ArticlesController@index');
Route::get('articles/create', 'ArticlesController@create');
Route::get('articles/{id}', 'ArticlesController@show');
  • Controllerを追加(順番注意): app/Http/Controllers/ArticlesController.php
public function create() {
    return view('articles.create');
}
  • Viewを書く: resources/views/articles/create.blade.php
@extends('app')

@section('content')
  <h1>Write a New Article</h1>
  <hr />

  {!! Form::open(['url' => 'articles']) !!}
    <div class="form-group">
      {!! Form::label('title', 'Title') !!}
      {!! Form::text('title', null, ['class' => 'form-control']) !!}
    </div>
    <div class='form-group'>
      {!! Form::label('body', 'Body') !!}
      {!! Form::text('body', null, ['class' => 'form-control']) !!}
    </div>
    <div class='form-group'>
      {!! Form::submit('Add Article', ['class' => 'btn btn-primary form-control']) !!}
    </div>
  {!! Form::close() !!}
@stop

登録APIの実装

  • Routingを追加(順番注意): app/Http/routes.php
Route::post('articles', 'ArticlesController@store');
  • Controllerを追加
namespace AppHttpControllers;

use Request;
use AppArticle;
use CarbonCarbon;

class ArticlesController extends Controller
{
    ...
    public function store() {
        $input = Request::all();
        $input['publishd_at'] = Carbon::now();
        Article::create($input);
        return redirect('articles');
    }

逆順ソートで表示

  • リスト表示時にlatestを使う
class ArticlesController extends Controller {
 
    public function index() {
        $articles = Article::latest('published_at')->get();
        return view('articles.index', compact('articles'));
    }
  • vendor/laravel/framework/src/Illuminate/Database/Query/Builder.php
    public function latest($column = 'created_at')
    {
        return $this->orderBy($column, 'desc');
    }

ハマりどころ

  • Laravel 5.4: Class 'Form' not found エラーが出る - kz-engineer -SCRAP-
  • Laravel 5.4: Fatal error: Uncaught Error: Class 'IlluminateFoundationApplication' のエラー - kz-engineer -SCRAP-
  • Laravel 5.4: Non-static method IlluminateHttpRequest::all() should not be called statically のエラー - kz-engineer -SCRAP-

参照

  • 【Laravel5】illuminate/htmlでFormを作る - Bloq4Developer
  • 【RailsユーザのためのPHP/Laravel】form_for的なのを使いたい - Qiita
  • What's the Difference between Illuminate HTML and Collective HTML ?
  • New community project Laravel Collective - Laravel News

ゲームの会話みたいにUITextViewに1つ1つ文字を表示する【Objective-C】

昔にどっかのサイトで見たコードを参考にして作りました。(サイト忘れた)


タッチしたら文字が1つ1つ表示されて、表示中にもう一度タッチすると文章が全部表示されます。


適当にInterface BuilderにUITextViewを設置しまして、Outlet接続(名前:textView)してください。


『.h』

int textIndex;
bool textflag;


『.m』

@synthesize textView;

- (void)viewDidLoad {
  [super viewDidLoad];

  textIndex = 0;
  textflag = false;
}

- (NSArray *)textArray {
  NSString *text1 = @"これは1つ目の文章だよ。改行もさせたいからそれとなく文章を長くしてみるよ。";
  NSString *text2 = @"これは2つ目の文章。";

    return @[text1, text2];
}

- (void)touchesBegan:(NSSet<UITouch *> *)touches withEvent:(UIEvent *)event {
  NSArray *textarr = [self textArray];

  if (textflag == true) {
     textflag = false;
     return;
  } 

  if (textarr.count > textIndex) {
    NSString *text = textarr[textIndex++];
    [[[NSOperationQueue alloc] init] addOperationWithBlock:^{
      textflag = true;
      for (int i = 0; i != [text length]; i++) {
        if (textflag == false) {
          [[NSOperationQueue mainQueue] addOperationWithBlock:^{
            textView.text = text;
          }];
          break;
        }
    
        // 前から文字を切り取り
        NSString *message = [text substringWithRange:NSMakeRange(0, i+1);
        [[NSOperationQueue mainQueue] addOperationWithBlock:^{
          textView.text = message;
        }];

        // 次の文字を表示するまでスリープさせる
              [NSThread sleepForTimeInterval:0.1];
      }
      textflag = fase;
    }];
  } else {
    // 終了
  }
}

せきトリ君!

今日、NHK大相撲中継の放送席に、せきトリ君がいた(笑)

sekitori0001.jpg

さりげないけど目立ってる(笑) 

アラベスク・ネックレス|制作過程|ナオセガワ

 こんばんわ。ナオです。

今回は、初めて投稿したアイテムをご紹介します。

Instagramにて2015年10月あたりに制作の過程から投稿しました。

 

Nao Segawa|jewelry|necklace|Arabesque|セガワナオのジュエリー、アラベスクネックレス


Concept:「Drawing」|紙の上で踊るドローイングのように、自由に装飾をしていきます。

Info:アラベスク=唐草は、その生命力の強さから、繁栄の象徴として古くから装飾のモチーフとして愛用されてきました。


素材はSilver925です。デザインは決めずに制作を開始しています。

母材(板の部分)の輪郭だけ決めて、あとは「このバランスが素敵!」と自分が感じる所まで、装飾装飾です。

サイズは母材が横23mm×縦8mmです。

ではメイキングに参りましょう。

 


メイキング映像

 

このように、すり板と呼ばれる木板の上で、切り出した母材(紫色)に装飾をしていきます。

途中で赤や白の装飾部分が出てくるのは、切削性の良い材料を使用して輪郭を出しやすくする為です。決して今日のラッキーカラーだからではありません。

細部は金属になってから仕上げるので、ある程度形になったところで、銀に置き換えます。

鋳造業者に発注物質変換の錬金術であっという間にシルバーアクセサリーの原型です。

 


仕上げまでの保管

 原型を取り出したばかりでまだチェーンはついていません。

この状態も素敵ですが、最終的な仕上げは硫化で黒くしてアラベスクの陰影をだしていきます。

Nao Segawa|jewelry|necklace|Arabesque|アラベスクネックレスの製作途中

シルバーは放っておくと空気中に含まれる硫化水素と反応して、硫化銀が発生します。

つまり黒く変色していきます。硫黄もダメです。温泉に入ると黒くなる理由です。

酸化ではなく、硫化です。ここはテストに出ます。

仕上げの工程に取り掛かるまでに時間が空く場合は、とりあえず空気に触れないように何も存在しない二次元に保管しておきます。

 

 

Nao_Segawaさん(@nao_segawa_)が投稿した動画 -

 

 

保管完了。

 

 ちなみに上記で使用したエレクトリカルでテクノポップな音源は、下記の動画のように彫金机から採取しました。

地産地消です。

 

 

 

Nao_Segawaさん(@nao_segawa_)が投稿した動画 -

 

 

 この後は、頃合いを見計らって(?)チェーンを付けるための丸環を左右につけて→「型取り」→「複製」→「チェーン付け」→「黒くする」→「仕上げ」→「完成」→「うっとりと眺める」といった工程となります。

このあたりの作業風景は撮影していませんでした。

カメラをただ回すだけだというのに、びっくりするほど時間が掛かります。

パソコンで加工ソフトを駆使していたから

不思議な話です。

うなだれるワタクシ。前回に引き続き2度目の登場です。

Nao Segawa|jewelry|セガワナオの憔悴の図

しかしながらジュエリーの生まれる現場をノンフィクションでお届けするという試みで、今回は制作風景を撮影していきましたが、初めてのことばかりで新鮮かつ刺激的でした。

今後も色々とお伝えしていけたらと思います。

 

 


 

では最後にもう一度

 

Arabesque Necklace|Nao Segawa

Nao Segawa|jewelry|necklace|Arabesque|セガワナオのジュエリー、アラベスクネックレス

 

Concept:「Drawing」|紙の上で踊るドローイングのように、自由に装飾をしていきます。

Info:アラベスク=唐草は、その生命力の強さから、繁栄の象徴として古くから装飾のモチーフとして愛用されてきました。


素 材 :Silver925

サイズ :トップ部分 約 縦 8× 横 23(mm) 

チェーン:約40cm+5cm(アジャスター)

重  さ:約3g


 

ここでオンラインショップなどを紹介できたら良いのですが、いかんせんありません。

さらにオフラインショップもありません。ええ、いかんせんありません。

ワタクシ、最後に詰めの甘さを露呈する結果となりました。

お求めやすい価格ですよ。(明後日の方向を見上げながら)

 

転売したい。

とあるビッグアーティストさんのチケット。
FC先行で買ったのですが、残念なことにすっかり熱が冷めてしまいました。熱が冷めたアーティストさんのライブに行くことほど苦痛なものはないので、仕方がなく転売サイトに掲載しました。もちろん利益ゼロです。売れてくれるとうれしいのだけど、その転売サイトではもう既に原価割れの出品もあって、タブ付いています。うーむ。困った。

写真は意味なく紫陽花。この色が一番好き。

画面遷移時に次のシーンに変数の値を渡す【cocos2d-x】

こちらを参考にさせていただきました。
cocos2dx シーンからモーダルレイヤーを呼び出す際に変数を渡す方法 - プログラマーのアプリ開発日誌


AClassの変数の値(int a に 7 を代入したとする)を、BClassのシーン移行時に値を受け取る。


『BClass.cpp』

#include "AClass.h"

auto AClassScene = (AClass*)Director::getInstance()->getRunningScene()->getChildren().at(1);

log("%d", AClassScene->a);


cocos2d-xではもっと簡単に変数の値を共有できないのでしょうか。。(´・ω・`)

サイゼリヤの「マルゲリータピザ」は「Wチーズ」がお勧め!!

サイゼリヤはイタリアンレストランなので、当然ピザがあります。

数種類のピザがあり、チーズを倍にするWチーズというオプションの選択も可能です。

今回はそんな数種類のピザの中から一番オーソドックスな「マルゲリータピザ」を、オプションの「Wチーズ」をつけて注文してみました。

残念ながら写真は普通のマルゲリータピザなのですが、Wチーズは本当にチーズが倍になったぐらいの量乗っているので気になる方は直接注文してみてください。

 

〇基本情報〇

【名称】

マルゲリータピザ Wチーズ

f:id:all-review:20160817234312j:plain

 

【金額】
498円(マルゲリータピザ399円、Wチーズ99円)


【購入元】
サイゼリヤ

 

 
〇評価〇

【点数】
75点


【良い点】
低価格にもかかわらずしっかりとしたピザである。

Wチーズではチーズの量が多いため濃厚でうま味が強い。

2人で、各自メイン+これをシェアするぐらいが良い感じの満足感となる。

備え付けのタバスコなどをかけるとより美味しい。

トマトもチーズも美味しい。


【悪い点】

以前よりも小さい気がする。

チーズが99円は高いかもしれない。


【総評】

複数あるピザの中で最も安い「マルゲリータピザ」であるからこそ、Wチーズにするだけの余裕があり、チーズが増えるからこそチーズ好きはお得に感じる。

やはりチーズが倍になるというのは良いオプションである。

元々美味しいピザがさらに美味しくなる。

マルゲリータピザはチーズをメインにし、あとはトマトだけなため、人によっては別のピザの方が良いかもしれない。

タバスコをかけるとかなり美味しい。

 

量的にはこれだけでは少し足りない程度である。

メインを一品注文し、2人でピザをシェアすれば良い量になると感じた。

それでも一人1000円もしないためお勧めの注文法である。

ただし、大きさが以前より小さくなっている気がして残念。

もう少し大きくなってくれたらと思う。

【緊急】国会における大統領不信任案の上呈に関するデモ情報

●在ケープタウン領事事務所からのお知らせ

●国会における大統領不信任案の上呈に関するデモ情報

報道等によると,国会におけるズマ大統領不信任案の上呈(8月8日予定)に際し,以下のとおりデモ行進が行われる予定です。

但し,ルートは流動的であり変更・拡大の可能性もあります。

特に8日の市内デモは賛成派と反対派の双方が入り乱れる可能性も排除されず注意が必要です。

・8月7日(月)午後2時から6時半

Keizersgrach通りを出発し,Buitenkant通りを経由し国会まで。

(実際団体:#UnitedBehindなる政治団体)

・8月8日(火)午前9時から

グランドパレードを出発し,Plein通りを経由し国会まで。

(実際団体:アフリカ民族議会(ANC))

・8月8日(火)午前9時から

Keizersgracht通りを出発し,Buitenkant通りを経由しセント・ジョーンズ通りとローランド通りにおいて集会。

(実際団体:国民議会(DA)等複数政党)

つきましては,報道には十分ご注意の上,仮にデモに出くわした場合には近づかずに迂回されるようお願いします。

※「たびレジ」簡易登録をされた方でメールの配信を停止したい方は,以下のURLから停止手続きをお願いいたします。

https://www.ezairyu.mofa.go.jp/tabireg/simple/delete

******************************************

このメールの送信アドレスは送信専用です。

在ケープタウン領事事務所

電話:(国番号27)-(0)21-425-1695

******************************************

Laguna9thAnniversaryspecial<HoneyMoon!!!>@下北沢ラグーナ