cakephp3 のチュートリアルを実践しています。
実践しているチュートリアルはこちらです。
http://book.cakephp.org/3.0/ja/tutorials-and-examples/bookmarks/intro.html
チュートリアルは、コードを張り付けるだけなので、内容がわかなくても動作確認ができました。
そこで、各ソースコードがどのような動きをしているのかを調べています。
その中で自力でわからないところをお聞きしたいと思います。
以下のコードは、「Finder メソッドの作成」という項目の部分です。
public function findTagged(Query $query, array $options)
{
$fields = [
'Bookmarks.id',
'Bookmarks.title',
'Bookmarks.url',
];
return $this->find()
->distinct($fields)
->matching('Tags', function ($q) use ($options) {
return $q->where(['Tags.title IN' => $options['tags']]);
});
}
ここのソースコードで以下の疑問があり質問させていただきます。
一つ目、findTaggedの引数(Query $query, array $options)には、どういった意味があるのでしょうか?
関数の引数ですと、引数の文字が関数内で使われますが、findTagged では、[Query &query]という知らない文字が表示されています。これはどういった意味なのでしょうか?
また、変数として「&query」として使われるのはわかりますが、この大文字の[Query]には、違う意味があるような気がします。
二つ目は、find()のメソッドチェーンである
->matching('Tags', function ($q) use ($options) {
return $q->where(['Tags.title IN' => $options['tags']]);
});
です。function が含まれ、知らない[$q]や use ($options) という表現もあります。
ここに関しては、どの記述が何を意味しているかも知りたいです。
phpも初めてなので、どのような意味か詳しく教えていただけると助かります。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/11 06:43
2016/10/11 07:02
2016/10/11 07:02