21日目。ProgateのPHPⅣでお料理サイトをパワーアップしました!
21目の今日はProgateのPHPⅣ。お料理サイトをパワーアップです!
トータルで4時間、いまいちピンとこないままクリアしたので、もう一回復習しました。
foreachとかif分は見なくても書けるようになりました。
一方で、$ありなし、privateとpubicの使い分け、staticのありなしと、こんがらかってしまいます。
それから、Progateを進めるコツがわかりました!
①分からなかったら、画面を更新してどのPHPの何行目でエラーになっているか確認。
②全部解けなくても「確認して次へ」ボタン。どこで引っかかったかヒントが出てきます。
行き詰まってもだいたいこれで見つけられる感じです。
・・・でもヒントが時々間違っているという罠(笑)完璧じゃなくてもクリアするケースも(汗)
プログラミングだからしょうがないんですが、一文字違うと動かないんですね。
それがどこでを見つけるのがまた大変。
とりあえず達成感で一杯です!
Progateお料理サイト
http://appdays.herokuapp.com/Day21
リンクを作ろう
<a>
タグで囲むだけ。楽勝!
クエリ値を渡す
次のページに必要な情報を渡すことができる。
この場合はshow.php
にCURRY
を渡している。
はてな?
で区切ってクエリ=内容
に気がつくのに手間取りました。
詳細ページの中身を作ろう
クラスメソッド = public static function
でいいのかな?
Menuクラスの呼び出し方はMenu::findByName()
カッコや一文字違いでエラーがあちこち。それを取るのが大変!
Reviewクラスを作ろう
Menuを真似してつくればOK!
Reviewのデータを作ろう
おなじくMenuを真似してつくればOK!
レビューを表示しよう
これもMenuをまねして完成!
foreach文が難しかった。
<?php foreach($reviews as $review): ?>
<h3><?php echo $review->getMenuName() ?></h3>
<p><?php echo $review->getBody() ?></p>
<?php endforeach ?>
レビューを取得しよう
メソッドとは関数のこと。public function
で定義。
ファンクションとどう違うの。こんがらかる。
http://php.net/manual/ja/language.oop5.basic.php
ヒントを見ないで作るとこんだけ間違う。
・function
とstaticをまちがってた
・$this
とthis
をまちがっていた
・$review
の$
がなんでか一個おおくて$$reviewになっていた
・$reviewsForMenu[] = $review;
の[]
が足りなかった。
・return $reviewsForMenu;
の位置が間違っていた
「確認して次へ」で間違った箇所を教えてくれるのだけど、それが間違っていたりした。
・if分の中で文字列の比較には「==」 を使いましょう → 実際は「()」が足りなかった。時々こう言うことがあるって覚えておこう。
public function getReviews($reviews) {
$reviewsForMenu = array();
// 引数の$reviewsの要素を繰り返し処理しましょう
foreach ($reviews as $review) {
// $review(配列の要素)のmenuNameプロパティと、プロパティのnameが一致するか調べます
if ($review->getMenuName() == $this->name) {
// $reviewを戻り値用の配列に追加します
$reviewsForMenu[] = $review;
}
}
return $reviewsForMenu;
}
###Userの追加
class
,__construct
ゲッター
の追加。
classの中にみんな全部いれるんだった。に気がつくのに手間取った。
###UserとReviewを紐付けよう (10分)
同じことも3回目だとなんとなく手が動く感じ。
一文字違うとエラーになるし、なかなか見つからないのにイラつく!
###ユーザーの情報を表示しよう
セミコロンがいるとかいらないとか
ゲットするとかしないとか
日本語が良く分からなかったり・・・
$review
に対して、引数を$users
としてgetUser
メソッドを呼び出して、戻り値を変数$user
に代入してください
###ReviewとUserの紐付け
IDを生成してレビューと紐づける。
IDのカウントアップで悩みました。
self::$count++;
// idプロパティにクラスプロパティ$countの値を代入してください
$this->id = self::$count;
完成!
Author And Source
この問題について(21日目。ProgateのPHPⅣでお料理サイトをパワーアップしました!), 我々は、より多くの情報をここで見つけました https://qiita.com/robamimim/items/5a6aeb8aaddde2b21316著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .