Tag Archive L4

EloquentでIDを使わない(作らない)で作る方法

こんにちは、なかしーです。
今日もLaravelです。
履歴を残す為のモデルを作りたくなることありますよね。私にはありました。
そこまで重要な内容ではない&情報量増えると思ったので、スリムなデータ構造にしたく、IDも入れたくない、timestampsも入れたくないと思ったわけです。
ただ、EloquentでID使わないって出来るんだべか?という気持ちになって調べてたら良い奴がおりました。
こちらをご参考下さい。
ついでにtimestampsについては、Migrationの中で作らないように修正しました。
とりあえず動いてるからこれでいいのかな。
 
 
では。
 

Bootstrapのgridの非表示の件

先日、やっとこさ我々の新しいサービスをみなさまにお知らせする事が出来ました。
去年からもそうですが、遊んどる暇はありません。
という事で今日もWEB関係です。
Bootstrap使いまくってますが、Gridで画面つくってる時に、PCだと必要だけどMobileだと見せたくないんだよなー、って奴が出てきました。
(位置合わせ用で置いた空の部分とかです。)
んで、どうやるんだろなーと思ってたらこんなサイトがありました。
http://easyramble.com/twitter-bootstrap-responsive-utilities.html
大変お世話になりました。有難うございます。
では。

ブートストラップのCSSとJSのバージョンが違った3.3.2(JS)と3.3.4(CSS)場合、モーダルダイアログが影の下に隠れた。バージョンを合わせたら大丈夫だった。当たり前か。

こんにちは、なかしーです。
今日の記事はタイトルのまんまです。
「BootstrapのCSSとJSのバージョンが違った3.3.2(JS)と3.3.4(CSS)場合、モーダルダイアログが影の下に隠れた。バージョンを合わせたら大丈夫だった。当たり前か。」
まぁそりゃそうですよね。
なんでだろー、って色々探して以下の記事見た時に、そうか、と気がつきました。
http://qiita.com/jkawamoto/items/fec73c4daac41fc86a28
色々やってる時にバージョンがずれちゃったんでしょうね。ご注意下さい。
では

利用規約の長文テキストをiFrame風に小さい枠にスクロールつけて表示したい時

こんにちは、なかしーです。
今日もWEB関連。
会員登録フォームのSubmitボタンの前に規約を表示しておく必要があるということになりました。
そういうことありますよね。あると思います。やっといたほうがいいらしい。
でもiFrameを使って実装するのはなんかヤダなーという事で、調べてたらありました。
http://peacepopo.net/blog-entry-94.html
まぁ技術的にiFrameが使えない環境ではないのですが、このやり方はいいかも。
私は具体的には以下のCSSでやりました。
サンプルコード

/* 利用規約用小窓みたいなスクロール付き要素の設定 */
.box_srcollbar {
overflow:auto;
height:150px;
border:1px solid #CCCCCC;
padding:10px;
}

では。

Laravelのエラーページで便利だったサイト

こんにちは。
今日もLaravelです。
エラーページを準備しよう、となった時に役に立ったのがこちら
ほぼこのまんま使ってます。ありがたやありがたや。
 
では
 
 
 

Eloquentで実際に裏で叩かれるSQLの確認の際に役立ったサイト

こんにちは、なかしーです。
またLaravel関連です。
以前の記事でwhereHasを使ったScopeの話をしました。
作ったはいいのですが、なんとなくそろそろパフォーマンスが気になるお年頃です。
そこで、どういうSQLが動いているか、時間はどんなもんかを見たくなったので、以下を参考にしました。
http://dim5.net/laravel/debugging-sql-queries.html
私は、(今回は)Afterの方法で実装してSQL眺めてみました。
とりあえず紹介したかっただけなのでこれくらいで。
では。
 
 
 
 
 

slickを使う際に参考にしたサイト3つ。(最後の超大事)

こんにちは、なかしーです。
WEB関連続きです。
Slick使ってますか?使ってますよね?オシャレだし、きっとみんなつかってます。
(Twitterのカルーセルでもいいんですが、応用効かせられるかどうか、未熟な私にはわからず使わない。)
ということで、Slick使うときに超お役立ちのサイトを紹介。
その1、本家。そりゃないか?
その2、emiac-worksさんの記事
こちらは設定がリストしてあって便利でした。助かりました。
 
その3、おなじみStack Overflowの投稿
矢印がちゃんと出てこないよー!って時に助かった気がします。(多分。若干もう忘れた。)
英語ですが、まぁこのくらいなら読むしか無いっすね。
ちなみに、矢印の色とか変えちゃいたい場合は以下サンプルCSSとかで如何かしら。

/*       Slickの矢印の色変更   */
.slick-prev:before, .slick-next:before {
    color:#337AB7 !important;
}

 
 
 
ではでは。
 
 
 
 
 

whereHasを使う歳に役立ったサイト

こんにちは、なかしーです。
今日もLaravel関連です。
Eloquentはとても便利ですよね。
この前、とある処理でmorph先のモデルをひとつ以上持っているモデルだけ引っ張ってこいよ!という処理を考えていた時に、こちらのページにお世話になりました。(https://teratail.com/questions/5416)
こちらのオブジェクト側(仮にHogeとする)は以下の関係を持っていて、このtop_photos()を一つでも持っているHogeを連れて来い!という事がやりたかったわけです。
ということで、そういうスコープを以下のように作りました。

public function scopeHasphoto( $query )
{
return $query->with('top_photos')->whereHas('top_photos', function($q)
{
$q->where('top_imageables.top_imageable_type', '=', 'Hoge');
});
}

パフォーマンスがどうかってのはあんまりまだ考えれて無いですが、とりあえず動いたので良しとする。

AJAXで追加コンテンツを読み込んだ時にmasonryとimagesLoadedがうまく動かない場合

こんにちは、なかしーです。
Laravelネタに関連して、masonryで躓いた時の対応についてです。
ピンタレスト風にコンテンツをぬるぬる読み込みたい時もあると思います。ありますよ。あります。
そこでmasonryなぞを使ってみたものの、あんまりAJAXとかJSが得意でない為に、ちゃんと動かず困りました。
それで、こちらへんを参考にしてやっとこさ動きました。JSなんてどうせ見えちゃうからさらしちゃおう。
 
サンプル:

<script type="text/javascript">
var page = 1;
$(document).ready(function() {
    $container = $("#item_list");
    $container.imagesLoaded(function() {
      $container.masonry({
        itemSelector: '.thumb',
        columnWidth: '.thumb',
      });
    });
        $(window).scroll(function(){
                if  ($(window).scrollTop() + 100 >= $(document).height() - $(window).height()){
			var obj = $(this);
		        if (!obj.data("loading")) {
		            obj.data("loading", true);
		            $("#prefooter").append("<p>Loading...</p>");
		            setTimeout(function(){
		            $.ajax({
		               type: 'GET',
		               url: "http://hogehoge/?order=desc&page=" + (++page),
		               dataType: 'html',
		               success: function(data) {
				if (data != ''){
				  $container.imagesLoaded(function(){
 					var el = $(data);
					el.css('display','none');
					$container.append(el);
					$container.imagesLoaded(function(){
					  el.css('display','inline');
					  $container.masonry('appended', el, true);
					});
				  });
				}
		               },
		               error:function() {
		                   alert('問題がありました。');
		               }
		            });
				setTimeout(function(){
					 obj.data("loading", false);
				}, 1000);
			 	$("#prefooter p:last").remove();
		            }, 500);
		        }
                }
        });
    // リロードしたときにページの先頭を表示する
    $('html,body').animate({ scrollTop: 0 }, '1');
});
</script>

 
 
誰かのお役に立てば何よりです。
 
 
では。
 
 

Laravel:Eloquentのモデルの値(Attributes)をViewでズラッと表示したい時

なかしーです
最近、PHPのLaravelというフレームワークを使ったりしてます。
なので、その関連で自分が躓いた所で、解決方法を英語で発見したものとかを紹介しておこうかなーとか思いました。
今回は、Eloquentの中身をつらつら一覧したいときなんかに、ちまちま書くのめんどくせーってなった場合の1つの方法です。
http://laravel.io/forum/02-16-2014-iterate-through-model-attributes
こちらの、下のほうにちょろっと書いてあるgetAttributes()をつかって、@foreachすればまぁそれなりにシンプルにいけます。
 
サンプル:

 @if (! empty($user))
@foreach( (array) $user->getAttributes() as $key => $value)
<tbody>
<tr>
<th scope="row">{{{$key}}}
</th>
<td>{{{$value}}}</td>
</tr>
</tbody>
@endforeach
@endif

 
みたいな。
 
 
では。
 
http://laravel.io/forum/02-16-2014-iterate-through-model-attributes

1