Larvel勉強メモ

カテゴリー毎にブログを分ける時の概要

 

投稿したブログをカテゴリーごとに表示する方法として、まず投稿するcreate画面で、< input type="redio" class="" name="category" value="芸能"><label> 芸能</label> の様に書きチェックボックスを作り保存させる。

その後モデルのテーブルも修正してロールバックし再度マイグレーションを行う。

これで上で作ったcategoryが保存されたので、表示したい画面でwhere文を使いcategoryで検索をかけて表示させることができる。

Laravel学習メモ

biladeファイルに書くタグはタグごとにgetかpostか決まっている。

下の様なリンクタグはgetになるので

< a href=""{{ action(CommentContoroller@delete, [id => $comment->id])}}>削除</a>

この様なリンクタグはgetになるのでrutesのweb.phpには、

Rutes::get(~~で指定してあげないと上手く動かない。

ニュースブログの作成

本日はニュースブログの作成で読んだユーザーが自由にコメントできる機能を実装しました。

 

指定の場所にコメントを入力するスペースを作るまではすぐできたのですが、入力したデータを保存させるのに手こずりました。その際に学んだことを書いていきます。

 

 

<form>タグはモデルにデータを飛ばす際に使うタグですが、飛ばしたい部分だけ囲めば大丈夫だと言うこと。

 

<form>タグの中では保存したいデータのnameと作ったテーブルのnameを合わせること。今回の場合は

<input type="hidden" name="news_id" value="{{$headline->id}}">

と書き、news_idのところがそれにあたりテーブルのところにも同じものがある。

またvalueのところには値が入り、今回の場合ユーザーが打ち込んだコメントのデータがそれにあたる。

 

最後に</form>で閉じる直前に{{ csrf_field() }} を入れて置かないとエラーになることがある。

 

 

ニュースブログの作成について

本日はニュースブログの作成を行なっていて、記事にTwitterと連動する機能をつけた。作業としてはとても簡単だったのだが、この機能を付けたいページがどのファイルに当たるのかを特定するのに時間がかかってしまった。

付けたいページのURLからルートのweb.php→対応したControllerのアクション→そのアクションがどのページを指しているかを辿っていたら特定できた。

 

特定したらページの機能を入れたい部分に以下の記述を入れると連動するボタンが作ることが出来る。

 

<div class="twitter">

    <a href="//twitter.com/share" class="twitter-share-button" data-text=<"!-- ここにTweetした時にデフォルトで入れておきたい文字列を入れる -->" data-url="<!-- ここにTweetした時に入れたいURLを入れる -->" data-lang="ja<!-- 日本語の場合 -->">

Tweet

     </a>

</div>

基本的なCSS

よく使う基本的なCSSをまとめてみた。

 

width height

これは要素の高さと幅を指定することができる。

<div class="box">

</div>

 

.box {

  background-color: black;

  width: 100px;

  heoght: 300px;

}

 

margin

これは要素間の余白の調整の際に使用する。

<div class="box1">

</div>

<div class="box2">

</div>

 

.box1 {

  background-color: silver;

  width: 300px;

  height: 300px;

 margin-bottom: 30px;

}

 

.box2 {

  background-color: red;

  width: 300px;

  height: 300px;

}

 

padding

これは要素内の余白の調整の際に使用する。

 

<button>

  hello

</button>

 

button {

  background-color: bule;

  padding: 100px 300px;

}

 

border

これは上で書いたmarginとpaddingの間にある境界線のこと。要素の外枠みたいな。

 

<button>

  hello

  </button>

 

button {

  background-color: blue;

  padding: 100px 300px;

  border: 2px solid red;

}

 

border-redius

これは上で書いたborderの形状を変更できる。

 

button {

  background-color: blue:

  padding: 100px 300px;

  border: 2px solid red;

  border-radius: 30px;

}

 

font-size

これはそのままで文字の大きさを指定する。

<p>

  hello

 </p>

 

 

p {

  font-size: 200px;

}

 

font-weight

これは文字の太さを指定する。

 

p {

  font-size: 200px;

  font-weiht: bold;

}

 

font-style

これは文字の種類を指定する。

p {

  font-size: 200px;

  font-weight: bold;

  font-style: italic;

}

 

background

これは上で何回か出てきているが、要素の背景の色を指定できる。

 

<button>

  hello

</button>

 

button {

  background-color: blue;

  padding: 100px 300px;

}

 

display

これはdisplay:  block;display: inkine-block;があり前者は要素を縦並びに、後者は要素を横並びにする際に使用する。

 

<span>

  hello

</span>

<span>

  hello

</span>

<span>

  hello

</span>

 

span {

  display: block;

  font-size: 30px;

}

(spanは元々はインライン要素)

 

 

ニュースブログの作成

テキストにそってニュースブログの作成を行なっていて理解度が深まった点。

 

Laraver mixはそのプロジェクトごとに環境構築をする必要がある、という事。

最初は別のプロジェクトで環境構築を行なっていたので行わなくてもいいと思ったが、npmコマンドを使おうとしたところエラーになったので、再度環境構築を行う事で解消できた。