2014/04/22

ファイルアップロードライブラリ「Stapler」を使うときのメモ

「Stapler」を実装してファイルアップロードが全然うまくいかない。

調査していると、どうやらそもそもInsertクエリにファイル情報部分が載ってない。

これは、Posts.phpの下記部分に`photo'が抜けていたからだった。

protected $fillable = ['title', 'body', 'photo'];

さて、これでアップロードできるかと思えば、

Unable to guess the mime type as no guessers are available.

というエラー。 

調べてみると、php.iniにextensionの追記が必要だってさ。

参考サイト様:http://konradpodgorski.com/blog/91/solution-to-unable-to-guess-the-mime-type-as-no-guessers-are-available/

さて、DBにはデータがうまく入るようになったんだけど、
ファイルのアップロードがまだうまくいかないぞ、っと。

2014/04/19

layout.blade.phpがうまく表示できない時

http://laravel4.kore1server.com/docs#creating-a-view

ビューの作成で、画面は表示されるんだけど、

@extends('layout')

としか出てこない。

この原因は、users.blade.phpの@extends('layout')の前に空白とかtabとか入ってる時。

2014/04/16

環境構築

基本的には、下記サイトを参考にさせていただき構築。
http://laravel4.kore1server.com/


とりあえず、一番初めから、やったことを箇条書きにしておきます。


  1. Windows Server で IIS の有効化
  2. Webアプリケーション専用のパーティションを切りたかったので、Inetpubを移動
  3. DefaultApplicateionのパスを移動したInetpubに変更
  4. 「test」フォルダを作成
  5. Composerをインストール
  6. Laravelをインストール(inetpub/wwwroot/test/TestProject)
  7. storageフォルダのパーミッションの変更(IIS_IUSERのアクセス権限)
  8. Default Web Site の停止
  9. IISでpublicフォルダをローカルディレクトリに指定してサイト作成
  10. phpの動作確認
  11. Web.configの作成、設置
  12. app/routing.phpの修正
  13. Laravelの動作確認 

このなかで、WIMP環境特有のチェックポイントとしては、
1.7.9.11.12といったところです。

それぞれ設定の詳細が以下の通りです。


1.
OSインストール直後はIISが有効化されていないので、有効化します。
⇒参考サイト様:

7.
WebアプリケーションのユーザーはIIS_USERなので、このユーザーにアクセス権限を付けます。

9.
Laravelは、publicフォルダ以下に.htaccessがあって公開フォルダっぽいので、
ここを公開フォルダ指定してサイト登録します。


11.
下記内容でとりあえずWeb.configを作成。
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
    <system.webServer>
        <rewrite>
            <rules>
                <rule name="Imported Rule 1" stopProcessing="true">
                    <match url="^" ignoreCase="false" />
                    <conditions logicalGrouping="MatchAll">
                        <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" negate="true" />
                        <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" negate="true" />
                    </conditions>
                    <action type="Rewrite" url="index.php" />
                </rule>
            </rules>
        </rewrite>
    </system.webServer>
</configuration>
12.
ここで大分はまりました。
Step 9.で publicフォルダをルートにしてあるので、
特に変更なく動くと思ったのに動きませんでした。

実際の修正は、以下の通りすることで動きました。

Route::get('/', function()

Route::get('', function()
 ちなみに、チュートリアルにあるusersの指定も、

Route::get('/users', function()

Route::get('users', function()

ということで、修正後は以下の通り。

Route::get('', function()
{
    return View::make('hello');
});

Route::get('users', function()
{
    return 'Users!';
});

もっといい解決方法がありそうな気がする・・・
⇒参考サイト様:http://issasn.hatenablog.com/entry/2013/11/01/214812


こんな感じで、WIMP環境+Laravelが構築できました。