PHPに関する質問スレです
前スレ
【PHP】下らねぇ質問はここに書き込みやがれ 9
http://mevius.5ch.net/test/read.cgi/tech/1513760420/
次スレは>>980以降
本文の1行目に以下を追加すること
!extend:on:vvvvv:1000:512
VIPQ2_EXTDAT: default:vvvvv:1000:512:----: EXT was configured
探検
【PHP】下らねぇ質問はここに書き込みやがれ 10
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん (ワッチョイ cfe8-+65u)
2018/11/28(水) 17:08:46.02ID:Nb5yTkdM014デフォルトの名無しさん (ワッチョイ 5bd5-rcbP)
2018/12/08(土) 10:05:40.16ID:yelb6oUt0 >>12
最後にもう一度 print $x; をやってごらんよ
最後にもう一度 print $x; をやってごらんよ
15デフォルトの名無しさん (ワッチョイ 01ab-n9Ol)
2018/12/08(土) 10:13:33.95ID:RDjv1fsh0 >>12
http://php.net/manual/ja/function.unset.php
unset($x)の時の$xはローカル変数の$xになってます。
関数内でグローバル変数としての$xを破棄したいのなら
unset($GLOBALS[]);を使います。
そもそもグローバル変数とローカル変数のスコープが異なるのは、
関数内の変数の取り扱いで、グローバル変数に影響させない為
関数の外でunsetせず、関数内で安易にグローバル変数をunsetさせず、
特別な取り扱いをさせている、ということなのですね
http://php.net/manual/ja/function.unset.php
unset($x)の時の$xはローカル変数の$xになってます。
関数内でグローバル変数としての$xを破棄したいのなら
unset($GLOBALS[]);を使います。
そもそもグローバル変数とローカル変数のスコープが異なるのは、
関数内の変数の取り扱いで、グローバル変数に影響させない為
関数の外でunsetせず、関数内で安易にグローバル変数をunsetさせず、
特別な取り扱いをさせている、ということなのですね
16デフォルトの名無しさん (ワッチョイ 81b3-xqdQ)
2018/12/08(土) 12:13:49.89ID:iKq5+OXH0 >> 12
これ、notice 発生するでしょ。
学習時は、そういうの気にしたほうが良いですよ。
グローバルに使うケースなんてあまりないから、マニュアル見る良いきっかけにはなったけどw
これ、notice 発生するでしょ。
学習時は、そういうの気にしたほうが良いですよ。
グローバルに使うケースなんてあまりないから、マニュアル見る良いきっかけにはなったけどw
17デフォルトの名無しさん (ワッチョイ dbef-n9Ol)
2018/12/08(土) 22:24:20.62ID:LXRFdUog018デフォルトの名無しさん (ワッチョイ b9e9-xqdQ)
2018/12/10(月) 12:14:54.37ID:5+iaWJW9019デフォルトの名無しさん (ワッチョイ dbef-n9Ol)
2018/12/10(月) 21:59:19.28ID:C/CCdKQw020デフォルトの名無しさん (ワッチョイ b9e9-xqdQ)
2018/12/11(火) 18:35:27.17ID:RBYf2Nxf0 >>19
学習・開発環境では
error_reporting = E_ALL
display_errors = On
log_errors = On
error_log = /path/to/error
で、本番(ネット上に公開する)環境では
log_errors = Off
として、エラーは出力せずログに記録するのみとする
(エラーを出力する事はセキュリティ的な穴になり得るから)
/path/to/error ってのはエラーを記録したいファイルへのパスってことね
書き込み権限与える事を忘れないよう
これやるとやらないとでは上達速度に相当差がつく
※本番環境では error_reporting のレベルを下げると書いてるものがたまにあるが
※大間違いなので真似しないよう
学習・開発環境では
error_reporting = E_ALL
display_errors = On
log_errors = On
error_log = /path/to/error
で、本番(ネット上に公開する)環境では
log_errors = Off
として、エラーは出力せずログに記録するのみとする
(エラーを出力する事はセキュリティ的な穴になり得るから)
/path/to/error ってのはエラーを記録したいファイルへのパスってことね
書き込み権限与える事を忘れないよう
これやるとやらないとでは上達速度に相当差がつく
※本番環境では error_reporting のレベルを下げると書いてるものがたまにあるが
※大間違いなので真似しないよう
21デフォルトの名無しさん (ワッチョイ 3b5f-JWqu)
2018/12/15(土) 17:50:00.18ID:jezVqobh0 小数点8桁を含むjsonをjson_decodeすると6桁に丸められて出力されるわこれ
どうしたらいいんだ。。
どうしたらいいんだ。。
22デフォルトの名無しさん (ワッチョイ 1aa5-UKyl)
2018/12/16(日) 00:15:00.03ID:QyRtehwq023デフォルトの名無しさん (ガックシ 06ff-ppkv)
2018/12/17(月) 10:59:38.41ID:S8NIVwif6 Laravelwwwwwwwww
24デフォルトの名無しさん (ワッチョイ 8a9f-UKyl)
2018/12/19(水) 00:15:29.67ID:kru7p0rZ0 ・我慢する
・妥協する
好きな方を選んでいいぞ
・妥協する
好きな方を選んでいいぞ
25デフォルトの名無しさん (ワッチョイ 6d9b-1vVt)
2018/12/22(土) 23:51:36.73ID:uVsSh1bK0 age
26デフォルトの名無しさん (ワッチョイ 9bef-q1e7)
2018/12/23(日) 09:55:59.13ID:imRge5LT0 laravelに関する質問って、どこですればいいですか?
27デフォルトの名無しさん (オッペケ Sr61-2x0a)
2018/12/23(日) 11:05:13.96ID:1KLFWUpKr Web板にある
28デフォルトの名無しさん (スププ Sd43-hgre)
2018/12/23(日) 11:08:44.03ID:I9bN9e1Bd symfony2は?
29デフォルトの名無しさん (オッペケ Sr61-2x0a)
2018/12/23(日) 12:02:07.91ID:1KLFWUpKr 同じくWebProg板にある
30デフォルトの名無しさん (ワッチョイ 6d9b-1vVt)
2018/12/23(日) 18:02:34.43ID:zMRMmtKp0 webprogのphpスレは初心者お断りみたいだから
このスレで質問したほうがいいけど
初心者お断りスレじゃなければwebprogの該当スレでいいんじゃね
age
このスレで質問したほうがいいけど
初心者お断りスレじゃなければwebprogの該当スレでいいんじゃね
age
31デフォルトの名無しさん (ワッチョイ 3598-E+HT)
2018/12/23(日) 19:28:28.95ID:dJkVsi530 エディタの配色テーマによっては、下記のようなスラッシュで囲んだ文字列がエラーっぽい色で表示されるんですが
書き方が間違っているんでしょうか?
$var = '/string/';
書き方が間違っているんでしょうか?
$var = '/string/';
32デフォルトの名無しさん (ワッチョイ 43a5-q1e7)
2018/12/23(日) 20:41:01.87ID:erEBm9IL0 preg_matchとかの正規表現だと判断されてるとかかな?
33デフォルトの名無しさん (ワッチョイ 3598-E+HT)
2018/12/23(日) 21:28:49.02ID:dJkVsi53034デフォルトの名無しさん (ワッチョイ e3ab-hgre)
2018/12/23(日) 22:14:03.14ID:C6NZW+q00 EC-CUBE3の質問って、ここでいいの?
35デフォルトの名無しさん (ワッチョイ 9bef-q1e7)
2018/12/24(月) 14:10:57.93ID:233xwMnJ0 >>30
ありがとうございます。
@slot と @includeの違いについてなのですが、
@slotは、@endslopまでの範囲の記載内容をテンプレの変数に割り当て
@includeでは、連想配列をつかって、テンプレ側でキーに対応する値を表示させる、ということのようですが、
結果的に同じような役割のように思えます。
決定的な違いって何なのでしょうか?
ありがとうございます。
@slot と @includeの違いについてなのですが、
@slotは、@endslopまでの範囲の記載内容をテンプレの変数に割り当て
@includeでは、連想配列をつかって、テンプレ側でキーに対応する値を表示させる、ということのようですが、
結果的に同じような役割のように思えます。
決定的な違いって何なのでしょうか?
36デフォルトの名無しさん (ワッチョイ 6d9b-KoXC)
2018/12/25(火) 01:56:48.71ID:NrxUWHxX0 機能的な違いはない
htmlタグを含む場合はslotのほうが見やすい(書きやすい)
と誰かが言ってた
htmlタグを含む場合はslotのほうが見やすい(書きやすい)
と誰かが言ってた
37デフォルトの名無しさん (ワッチョイ 9bef-q1e7)
2018/12/25(火) 06:51:17.65ID:+RHRyNBd0 ありがとうございました!スッキリしました!
38デフォルトの名無しさん (ワッチョイ 8998-sNPY)
2018/12/29(土) 02:00:22.36ID:qNy1dmrU0 larabelを使ってます。
その機能でオートローダーのスタティックを利用してます。
useしてnewするのは不要にってます
一方、larabelにはdi機能というのもあるようです。
どちらもnew不要ですがどちらの使い分けとかパターンわけなど何か使い分けるヒントをお願いします
その機能でオートローダーのスタティックを利用してます。
useしてnewするのは不要にってます
一方、larabelにはdi機能というのもあるようです。
どちらもnew不要ですがどちらの使い分けとかパターンわけなど何か使い分けるヒントをお願いします
39デフォルトの名無しさん (オッペケ Sr75-ledV)
2018/12/29(土) 17:02:58.05ID:CFGewoy6r class作るとき必ずinterfaceって作るものなの?
40デフォルトの名無しさん (ワッチョイ 99f0-xhm2)
2019/01/08(火) 18:59:06.54ID:odmObNXY0 おめでとうございます。今年もよろしくお願いします。
laravelの質問なのですが、ご教授くださいましたら幸いです。
class HelloController extends Controller{
public function index(Request $request,Response $response){
$html =<<<EOF
<html>
<body>
<h1>request</h1>
<p>{$request}</p>
<h1>response</h1>
<p>{$response}</p>
</body>
</html>
EOF;
$response->setContent($html);
return $response;
}
}
この最終行から3行目の,return $responseを、return $htmlとしても、ブラウザに表示される内容は同じです。
return $htmlで表示させないで、responseのcontentにhtmlコードを追加してreturnしている理由は、何かあるのでしょうか?
laravelの質問なのですが、ご教授くださいましたら幸いです。
class HelloController extends Controller{
public function index(Request $request,Response $response){
$html =<<<EOF
<html>
<body>
<h1>request</h1>
<p>{$request}</p>
<h1>response</h1>
<p>{$response}</p>
</body>
</html>
EOF;
$response->setContent($html);
return $response;
}
}
この最終行から3行目の,return $responseを、return $htmlとしても、ブラウザに表示される内容は同じです。
return $htmlで表示させないで、responseのcontentにhtmlコードを追加してreturnしている理由は、何かあるのでしょうか?
41デフォルトの名無しさん (オッペケ Src5-IAsy)
2019/01/08(火) 21:29:14.91ID:IOloucApr >>40
ララベルの仕様をみてsetContentはなんと書いてあるの?
ララベルの仕様をみてsetContentはなんと書いてあるの?
42デフォルトの名無しさん (ワッチョイ 99f0-xhm2)
2019/01/09(水) 11:51:40.20ID:rfEx/2+M0 >>41
ありがとうございます。
setContentは、Responseでクライアントに戻すHTMLソースが格納されてます。
HTMLソースを返すのなら、return $htmlを返しても同じなのかな、と思いまして質問しました。
ありがとうございます。
setContentは、Responseでクライアントに戻すHTMLソースが格納されてます。
HTMLソースを返すのなら、return $htmlを返しても同じなのかな、と思いまして質問しました。
43デフォルトの名無しさん (ワッチョイ fb8c-6SQQ)
2019/01/09(水) 18:55:24.82ID:MSH+15Q+0 掲示板作ってるんだけど、更新すると連投しちゃうのを防ぎたいんだけどどうすればいい?
POSTの中身を消して分岐させるとかイメージでいいの?
POSTの中身を消して分岐させるとかイメージでいいの?
44デフォルトの名無しさん (ワッチョイ 734d-xhm2)
2019/01/09(水) 19:52:02.31ID:4rDfBKqR0 >>43
登録後にブラウザの更新ボタンが押されると送信済みのPOSTデータが再送信され結果2重登録してしまうって事だよね?
なら↓のやり方でどうか
画面アクセス毎にセッションにランダム文字列を保存&出力htmlに<INPUT type="hidden">で保存した文字列を埋め込む
登録処理時、セッションに文字列が無い場合やPOSTされた文字列とセッションに保存された文字列が一致しない場合はNGとする
登録後にブラウザの更新ボタンが押されると送信済みのPOSTデータが再送信され結果2重登録してしまうって事だよね?
なら↓のやり方でどうか
画面アクセス毎にセッションにランダム文字列を保存&出力htmlに<INPUT type="hidden">で保存した文字列を埋め込む
登録処理時、セッションに文字列が無い場合やPOSTされた文字列とセッションに保存された文字列が一致しない場合はNGとする
45デフォルトの名無しさん (ワッチョイ d6a7-ae4N)
2019/01/10(木) 12:14:58.77ID:DtkiUTJR0 戻って更新なら連投の可能性もわかるけど
ただの更新でなんでそんな状況になるのか
ただの更新でなんでそんな状況になるのか
46デフォルトの名無しさん (ワッチョイ ce46-VK1S)
2019/01/10(木) 21:45:56.88ID:W9NULntl0 投稿内容をどこに保存しているかによるけれど
Requestに保存されてるんだからって言えばいい?
Requestに保存されてるんだからって言えばいい?
47デフォルトの名無しさん (ワッチョイ d6a7-ae4N)
2019/01/11(金) 00:52:34.47ID:Tbw1O8r40 indexから同じindexにpostしてindexで更新してるってことかな?
普通はpost用のコントローラに渡して実行後にindexにリダイレクトするから
戻るおさん限りは更新しても問題にはならんと思うのだけど
チャットほどじゃないにせよリロードが出来ない掲示板なんて…
まあ手動じゃなくて更新データはスクリプトで非同期でとってくりゃいいけど
サーバでどうにかなればプッシュすれば利便性もUP
普通はpost用のコントローラに渡して実行後にindexにリダイレクトするから
戻るおさん限りは更新しても問題にはならんと思うのだけど
チャットほどじゃないにせよリロードが出来ない掲示板なんて…
まあ手動じゃなくて更新データはスクリプトで非同期でとってくりゃいいけど
サーバでどうにかなればプッシュすれば利便性もUP
48デフォルトの名無しさん (ワッチョイ a5f0-VK1S)
2019/01/11(金) 09:10:05.09ID:5Sr7Z6Dc0 ディベロッパーツールで確認してごらんよ
POSTつかってリロードするとブラウザ内でPOST情報がどうなっているか
POSTつかってリロードするとブラウザ内でPOST情報がどうなっているか
49デフォルトの名無しさん (ワッチョイ ce8c-1FXn)
2019/01/11(金) 18:16:54.21ID:0MVnI2bb0 >>43
同じ掲示板にジャンプして書き込まれたPOSTの中身を確認してテキストに保存してって感じで作ってる
でもtime変数使ってページ読み込んだ時とボタン押されたときの変数で一致したら書き込むって感じでやってみるわ
同じ掲示板にジャンプして書き込まれたPOSTの中身を確認してテキストに保存してって感じで作ってる
でもtime変数使ってページ読み込んだ時とボタン押されたときの変数で一致したら書き込むって感じでやってみるわ
50デフォルトの名無しさん (ワッチョイ 5594-O5RA)
2019/01/11(金) 18:35:21.28ID:5tFH3fBo0 POST後はLocationでリダイレクトしちゃうな
51デフォルトの名無しさん (オイコラミネオ MM3d-P9+q)
2019/01/11(金) 22:43:36.05ID:4vkkoNusM52デフォルトの名無しさん (ワッチョイ d62c-NvUN)
2019/01/12(土) 00:51:32.95ID:IAz54C400 Rails など、普通のフレームワークの作り方では、
Post したら別の画面、一覧画面などに移動する
ルーティング(routes.rb)に、CRUD が定義されている。
追加(C)・更新(U)されたら、一覧(R)に戻る
一覧に戻ると、追加・更新されたのを見れる
Post したら別の画面、一覧画面などに移動する
ルーティング(routes.rb)に、CRUD が定義されている。
追加(C)・更新(U)されたら、一覧(R)に戻る
一覧に戻ると、追加・更新されたのを見れる
53デフォルトの名無しさん (ワッチョイ d6a7-ae4N)
2019/01/12(土) 08:15:39.30ID:9TmqbdMf0 戻るに対応するなら
セッションでトランザクション処理のようなことをやればいいだけだけど
更新するだけで連投されるなんていうミラクル仕様に突っ込んでるだけで
それとこれは話が別よ
セッションでトランザクション処理のようなことをやればいいだけだけど
更新するだけで連投されるなんていうミラクル仕様に突っ込んでるだけで
それとこれは話が別よ
54デフォルトの名無しさん (ワッチョイ 16da-aYY/)
2019/01/12(土) 11:26:47.84ID:dtC7PwsV055デフォルトの名無しさん (ワッチョイ 715f-RNo8)
2019/01/12(土) 11:47:59.75ID:JRnnmwIl0 他人のファイルに書き込みたいのですが、うまくいきません。
<?php
$file = 'https://mevius.5ch.net/test/read.cgi/tech/1543392526/l50';
file_put_contents($file, 'shine');
?>
なぜでしょうか?
<?php
$file = 'https://mevius.5ch.net/test/read.cgi/tech/1543392526/l50';
file_put_contents($file, 'shine');
?>
なぜでしょうか?
56デフォルトの名無しさん (ワッチョイ a5f0-VK1S)
2019/01/12(土) 11:55:12.21ID:wHUCWNv00 phpの質問をお願いします
class HelloRequest extends FormRequest
class HelloRequest extends FormRequest
57デフォルトの名無しさん (ワッチョイ a5f0-VK1S)
2019/01/12(土) 11:58:58.16ID:wHUCWNv00 すみません、誤射でした><
class HelloRequest extends FormRequest{
public function authorize(){
if($this->path() =='hello'){
return true;
}}}
if文にあるthis->path()は、validationメソッドですが
スーパークラスのFormRequestはControllerを継承してるのでしょうか?
また、laravelのクラスの継承図のようなものってどこかにありますか?
class HelloRequest extends FormRequest{
public function authorize(){
if($this->path() =='hello'){
return true;
}}}
if文にあるthis->path()は、validationメソッドですが
スーパークラスのFormRequestはControllerを継承してるのでしょうか?
また、laravelのクラスの継承図のようなものってどこかにありますか?
58デフォルトの名無しさん (ワッチョイ d6a7-ae4N)
2019/01/12(土) 13:04:51.50ID:9TmqbdMf0 >>55
file_put_contentsは使わないけどそれ以前にPOSTする為のパラメーターが足りてない
どういうことか理解できるならstream_context_createのページ見てみればいい
それ踏まえて方法はいくつかあるがcURLが一般的なので「PHP cURL POST」でググればいいよ
file_put_contentsは使わないけどそれ以前にPOSTする為のパラメーターが足りてない
どういうことか理解できるならstream_context_createのページ見てみればいい
それ踏まえて方法はいくつかあるがcURLが一般的なので「PHP cURL POST」でググればいいよ
59デフォルトの名無しさん (ワッチョイ d6a7-ae4N)
2019/01/12(土) 16:57:28.50ID:9TmqbdMf0 >>57
Laravelは使わないから知らないがLaravel APIでググったらこんなん出てきたけども
https://laravel.com/api/5.7/Illuminate/Foundation/Http/FormRequest.html
あとは頑張れ
https://github.com/laravel/framework/blob/5.7/src/Illuminate/Foundation/Http/FormRequest.php
Laravelは使わないから知らないがLaravel APIでググったらこんなん出てきたけども
https://laravel.com/api/5.7/Illuminate/Foundation/Http/FormRequest.html
あとは頑張れ
https://github.com/laravel/framework/blob/5.7/src/Illuminate/Foundation/Http/FormRequest.php
60デフォルトの名無しさん (アークセー Sx85-d2bj)
2019/01/12(土) 21:14:39.18ID:zfAqW2URx cakephp 2
find x3回
を
(unbind, find) x3回
にしたら8倍速くなった
やってること合ってる?
find x3回
を
(unbind, find) x3回
にしたら8倍速くなった
やってること合ってる?
61デフォルトの名無しさん (ワッチョイ 715f-RNo8)
2019/01/13(日) 01:34:59.40ID:mcoRrcQP0 超くだらない質問なんですが
PHPにパスワードを保存しようと思うのですが
PHPのソースコードが読まれないか心配です
いちおうブラウザからはソースを選択しても表示されないのですが
もしかしたら何らかの方法で読まれる可能性もありそうで
心配で寝れません
教えて下さい
お願いします
PHPにパスワードを保存しようと思うのですが
PHPのソースコードが読まれないか心配です
いちおうブラウザからはソースを選択しても表示されないのですが
もしかしたら何らかの方法で読まれる可能性もありそうで
心配で寝れません
教えて下さい
お願いします
62デフォルトの名無しさん (ワッチョイ 5594-VK1S)
2019/01/13(日) 04:56:00.12ID:5HRwOXUS0 環境変数で入れるかせめてハッシュ化する
63デフォルトの名無しさん (ワッチョイ d6a7-ae4N)
2019/01/13(日) 07:19:52.26ID:vFHHKg450 パスワードをスクリプトから分離して
phpからは参照出来るが外から直接参照できないとこ(ドキュメントルートの上とかDBとか)に置く
ファイルに保存するならファイル名は.htを先頭につけるといい
パスワードはハッシュ化しておく
これらが有効なのは放置してサーバの仕様変更に気づかなかったり(php廃止とか)
設定ミスってphpをtxtとして配信してしまうようなケースのみ
そのへんに問題なくてphpのソースコードが見られてしまうような場合は
もう何もかもがだめなことが多いので心配するだけ無駄だわ
phpからは参照出来るが外から直接参照できないとこ(ドキュメントルートの上とかDBとか)に置く
ファイルに保存するならファイル名は.htを先頭につけるといい
パスワードはハッシュ化しておく
これらが有効なのは放置してサーバの仕様変更に気づかなかったり(php廃止とか)
設定ミスってphpをtxtとして配信してしまうようなケースのみ
そのへんに問題なくてphpのソースコードが見られてしまうような場合は
もう何もかもがだめなことが多いので心配するだけ無駄だわ
64デフォルトの名無しさん (ワッチョイ ce46-VK1S)
2019/01/13(日) 10:01:59.70ID:c0Flhv7n065デフォルトの名無しさん (オッペケ Sr85-DIji)
2019/01/13(日) 12:25:48.51ID:e78RN+cdr Laravel使いたいのに絶対にcakePHP!!と言われて仕方なくそっちでやってる
66デフォルトの名無しさん (ワッチョイ 0a4b-VK1S)
2019/01/14(月) 07:36:31.79ID:qdlB9M7a0 すみません、助けてください
Vagrantが警告出てインストール出来ない環境って
何が問題なんでしょうか?
インストールが強制終了されます
バージョンは最新です
何が邪魔してるのでしょうか?
https://i.imgur.com/3jCEdpw.png
Vagrantが警告出てインストール出来ない環境って
何が問題なんでしょうか?
インストールが強制終了されます
バージョンは最新です
何が邪魔してるのでしょうか?
https://i.imgur.com/3jCEdpw.png
67デフォルトの名無しさん (オッペケ Sr85-DIji)
2019/01/14(月) 11:20:16.98ID:WRAeIDjcr 知らん
てか普通は作ったサポートに聞くだろ
なんで関係ない他人に聞くんだよ?
てか普通は作ったサポートに聞くだろ
なんで関係ない他人に聞くんだよ?
68デフォルトの名無しさん (ワッチョイ 5594-O5RA)
2019/01/14(月) 12:39:08.03ID:Wx7rBQ7H0 PHPの質問でもないしなぁ
69デフォルトの名無しさん (ワッチョイ ce46-VK1S)
2019/01/14(月) 21:58:11.38ID:mB9ZyxQs070デフォルトの名無しさん (ワッチョイ b34b-fAiL)
2019/01/17(木) 02:54:30.64ID:PVRvfBHL0 今でも使えるリファレンス本って何があるのでしょうか?
出版されてるものって古いですけど使えます?
出版されてるものって古いですけど使えます?
71デフォルトの名無しさん (オッペケ Sr1d-M666)
2019/01/17(木) 11:02:45.61ID:oOFYk3pkr phpはほぼ変わってないからよほど古くない限りどれでもいいからさっさとやれ
72デフォルトの名無しさん (ワッチョイ 11f0-fAiL)
2019/01/22(火) 15:38:00.61ID:+epunpvy0 laravel マイグレーション、シーディング処理について教えてください
現象:マイグレーションは作成できた。シーディングの実行で、columnが無い、というエラーが出る
----- migration --------
class CreatePeopleTable extends Migration{
pubulic function up(){
Schema::create('people',function(Blueprint $table){
$table->increments('id');
$table->string('name');
$table->timestamps();
現象:マイグレーションは作成できた。シーディングの実行で、columnが無い、というエラーが出る
----- migration --------
class CreatePeopleTable extends Migration{
pubulic function up(){
Schema::create('people',function(Blueprint $table){
$table->increments('id');
$table->string('name');
$table->timestamps();
7372 誤爆すみません (ワッチョイ 11f0-fAiL)
2019/01/22(火) 15:54:41.18ID:+epunpvy0 laravelついて教えてください。現象:マイグレーションでテーブルは作成できた。シーディングの実行で、columnが無い、というエラーが出る
//----- migration --------
class CreatePeopleTable extends Migration{
pubulic function up(){
Schema::create('people',function(Blueprint $table){
$table->increments('id');
$table->string('name');
$table->integer('age');
$table->timestamps();
});}
//----- Seeder -----
publid function run(){
$param=['name'=>'suzu','age'=>20,]:
DB::table('people')->insert($param);
$param=['name'=>'mizu','age'=>24];
DB::table('peope')->insert($param);}
//----- Seeding実行 -----
php artisan db:seed
//----- エラー -----
General error:table people has no column named name(SQL:insert into "people"("name","age") value(suzu,20))
catch(Exception $e){//・・・
$query,$this->prepareBindings($bindings),$e
マイグレーションで作成したテーブルにデータが登録できないのはなぜなのでしょうか?よろしくお願いします。
//----- migration --------
class CreatePeopleTable extends Migration{
pubulic function up(){
Schema::create('people',function(Blueprint $table){
$table->increments('id');
$table->string('name');
$table->integer('age');
$table->timestamps();
});}
//----- Seeder -----
publid function run(){
$param=['name'=>'suzu','age'=>20,]:
DB::table('people')->insert($param);
$param=['name'=>'mizu','age'=>24];
DB::table('peope')->insert($param);}
//----- Seeding実行 -----
php artisan db:seed
//----- エラー -----
General error:table people has no column named name(SQL:insert into "people"("name","age") value(suzu,20))
catch(Exception $e){//・・・
$query,$this->prepareBindings($bindings),$e
マイグレーションで作成したテーブルにデータが登録できないのはなぜなのでしょうか?よろしくお願いします。
7473 (ワッチョイ 11f0-fAiL)
2019/01/22(火) 16:28:02.93ID:+epunpvy0 すみません、なんだか分かりませんでしたが自己解決しました。
お騒がせしました。
お騒がせしました。
75デフォルトの名無しさん (ワッチョイ 9375-qnWR)
2019/01/23(水) 08:11:47.51ID:3lDydxt30 練習兼ねて小規模&少機能で簡単なネットショップを作ろうとしてるのですが、設計段階でファイルがごちゃごちゃになってしまいそうです
フォルダの作り方やファイルの分け方はどんな感じでやればスッキリ分かりやすくなりますかね?
フォルダの作り方やファイルの分け方はどんな感じでやればスッキリ分かりやすくなりますかね?
76デフォルトの名無しさん (ワッチョイ 9101-F2Ks)
2019/01/23(水) 08:31:27.16ID:Kmczp3SP0 >>75
小規模でもフレームワーク使うのがいいよ
小規模でもフレームワーク使うのがいいよ
77デフォルトの名無しさん (ワッチョイ 9bca-xX+4)
2019/01/23(水) 09:34:11.34ID:PjIYOotT0 フレームワーク自体のメンテが厄介だから入れずに済むのであれば入れない方がいいよ
78デフォルトの名無しさん (ワッチョイ 9bbb-2w1z)
2019/01/23(水) 11:27:05.16ID:aXKStg7n0 rep2という2chビューアのうち、DB連携部分のみうまく動かずデバッグしています。
■環境
php7.2で、phpinfo()には mysqli,mysqlnd,pdo_mysql
いずれもバージョン情報が表示されてて、必要な環境は準備できていると思っています。
■現象
$db = \DB::connect($dsn);
を実行すると、"DB Error: no database selected"というエラーになります。実際やりたいこと(imagecache2の利用)もできません。
■調べたこと
$this->comment('dsn=' . var_export($dsn, true));
の結果、以下の通り$dsnは正しいように見えます。
dsn='mysqli://rep2:password@localhost:3306/rep2'
しかし、以下のようにすると…
$db = \DB::connect($dsn);
$this->comment('db=' . var_export($db, true));
配列にusernameやpasswordが代入されていないようです。
'dsn' =>
array (
'phptype' => 'mysqli',
'dbsyntax' => 'mysqli',
'username' => false,
'password' => false,
'protocol' => false,
'hostspec' => false,
'port' => false,
'socket' => false,
'database' => false,
ではなぜ代入されないのか、がわからず。教えていただけないでしょうか。
■環境
php7.2で、phpinfo()には mysqli,mysqlnd,pdo_mysql
いずれもバージョン情報が表示されてて、必要な環境は準備できていると思っています。
■現象
$db = \DB::connect($dsn);
を実行すると、"DB Error: no database selected"というエラーになります。実際やりたいこと(imagecache2の利用)もできません。
■調べたこと
$this->comment('dsn=' . var_export($dsn, true));
の結果、以下の通り$dsnは正しいように見えます。
dsn='mysqli://rep2:password@localhost:3306/rep2'
しかし、以下のようにすると…
$db = \DB::connect($dsn);
$this->comment('db=' . var_export($db, true));
配列にusernameやpasswordが代入されていないようです。
'dsn' =>
array (
'phptype' => 'mysqli',
'dbsyntax' => 'mysqli',
'username' => false,
'password' => false,
'protocol' => false,
'hostspec' => false,
'port' => false,
'socket' => false,
'database' => false,
ではなぜ代入されないのか、がわからず。教えていただけないでしょうか。
79デフォルトの名無しさん (ワッチョイ eb2c-AZji)
2019/01/23(水) 11:46:36.90ID:tAarVqiS0 よく知らないけど、
connect は、データソースへつなぐだけじゃないの?
SQL のselect みたいなものは無いの?
CRUD も検索して
connect は、データソースへつなぐだけじゃないの?
SQL のselect みたいなものは無いの?
CRUD も検索して
80デフォルトの名無しさん (ワッチョイ 49ba-L3L3)
2019/01/24(木) 00:24:18.63ID:cPFOMtSZ081デフォルトの名無しさん (ワッチョイ 2ea7-iVxn)
2019/01/24(木) 19:50:20.26ID:kFfuye3h0 標準関数にズバリのものはないと思うけど探せば誰かコード書いてるはず
簡単なのでよければsubstr使うとか
parse_urlしたのを組み直すかそのあたりで
./../とかも考慮するならちょっと面倒になってくるが
簡単なのでよければsubstr使うとか
parse_urlしたのを組み直すかそのあたりで
./../とかも考慮するならちょっと面倒になってくるが
82デフォルトの名無しさん (ワッチョイ 06ca-hLzx)
2019/01/24(木) 23:16:07.50ID:TFfQdKfR083デフォルトの名無しさん (ワッチョイ 8101-h/iE)
2019/01/24(木) 23:50:15.43ID:1L/prd7r0 / の2個以上の連続を一つに置換する操作する処理を見かけたことあるなぁ。。。
あんまりきれいじゃない気がするけどw
あんまりきれいじゃない気がするけどw
84デフォルトの名無しさん (ワッチョイ 2e63-uJAn)
2019/01/24(木) 23:57:10.70ID:+WsHUVaQ0 ちょっと乱暴かも知れませんが、スラッシュが二重になっても
パスとしてはエラーにはならないと思います(見た目汚いですが)
パスとしてはエラーにはならないと思います(見た目汚いですが)
85デフォルトの名無しさん (ワッチョイ 49ba-L3L3)
2019/01/25(金) 23:38:05.77ID:H/r4QqDk0 echo 'aaa';
echo('aaa');
include_once 'path/file.php';
include_once( 'path/file.php');
のようにカッコが有っても無くても良い関数がありますが、
php上級者の人はどっちを使うのでしょうか?
理由も教えてけろ
echo('aaa');
include_once 'path/file.php';
include_once( 'path/file.php');
のようにカッコが有っても無くても良い関数がありますが、
php上級者の人はどっちを使うのでしょうか?
理由も教えてけろ
86デフォルトの名無しさん (ワッチョイ 45f3-kHYM)
2019/01/26(土) 17:25:33.44ID:y5VTPiFL0 関数・・・・・カッコを付ける
言語構造・・・カッコを付けない
echo も include も言語構造。
迷ったらマニュアルの例文をコピペ。
言語構造・・・カッコを付けない
echo も include も言語構造。
迷ったらマニュアルの例文をコピペ。
87デフォルトの名無しさん (オッペケ Srf1-ZdbU)
2019/01/26(土) 17:57:25.92ID:WSFNrCYQr phpの関数の戻り値って望む型の他にfalseも返ることがあるよね
そんで7からは戻り値の型宣言いれて戻り値の型が違ったらTypeError出す
もうごちゃごちゃだね
そんで7からは戻り値の型宣言いれて戻り値の型が違ったらTypeError出す
もうごちゃごちゃだね
88デフォルトの名無しさん (ワッチョイ 2e63-uJAn)
2019/01/26(土) 18:18:29.92ID:HzZF0HWM0 言っていることがごちゃごちゃだってことは分かった
89デフォルトの名無しさん (ワッチョイ 2e2c-/4Fh)
2019/01/26(土) 18:58:01.87ID:exLOU4gz090デフォルトの名無しさん (ワッチョイ 4646-uJAn)
2019/01/28(月) 07:17:11.62ID:X4/3tVW10 laravelに関して質問させてください。
Eloqentのモデルに関してです。
<?php
namespace ---
use ---\Model
class Person extends Model{
public function scopeAgeGreaterThan($query,$n){
return $query->where('age',$n);
}
コード中の$queryは、$thisとしても同じ結果が得られます。
$thisではなく、引数$queryを利用する意味は、何かあるのでしょうか?
もしあるのなら、その意味、意義を教えていただけないでしょうか?
よろしくお願いします。
Eloqentのモデルに関してです。
<?php
namespace ---
use ---\Model
class Person extends Model{
public function scopeAgeGreaterThan($query,$n){
return $query->where('age',$n);
}
コード中の$queryは、$thisとしても同じ結果が得られます。
$thisではなく、引数$queryを利用する意味は、何かあるのでしょうか?
もしあるのなら、その意味、意義を教えていただけないでしょうか?
よろしくお願いします。
91デフォルトの名無しさん (ワッチョイ 41f0-uJAn)
2019/01/29(火) 09:22:43.65ID:YbHXkxp70 $thisは自分自身のインスタンスからテーブル情報を取得
$queryはクエリビルダーを使ってテーブル情報を取得
$queryはクエリビルダーを使ってテーブル情報を取得
92デフォルトの名無しさん (ワッチョイ 49ba-L3L3)
2019/01/29(火) 21:20:14.58ID:KhUtNVBn0 ttps://stackoverflow.com/questions/4366730/how-do-i-check-if-a-string-contains-a-specific-word
の5831の回答で、
if (\strpos($a, 'are') !== false) {
の部分ですが、if( の次のスラッシュは何ですか?
の5831の回答で、
if (\strpos($a, 'are') !== false) {
の部分ですが、if( の次のスラッシュは何ですか?
93デフォルトの名無しさん (ワッチョイ 2e2c-/4Fh)
2019/01/29(火) 21:54:10.57ID:AnpnZGSz0 そのサイトの下の方では、\ は付いていないから、気にしなくてよいのでは?
<?php
$haystack = 'how are you';
$needle = 'are';
if (strpos($haystack,$needle) !== false) {
echo "$haystack contains $needle";
}
?>
<?php
$haystack = 'how are you';
$needle = 'are';
if (strpos($haystack,$needle) !== false) {
echo "$haystack contains $needle";
}
?>
94デフォルトの名無しさん (ワッチョイ 49ba-L3L3)
2019/01/29(火) 22:00:03.73ID:KhUtNVBn095デフォルトの名無しさん (ワッチョイ 2e2c-/4Fh)
2019/01/30(水) 00:01:17.63ID:T9WgAkKs0 Ruby には、偽がnil, false の2つしかないけど、
JavaScript, Python, PHP には、偽が10個ぐらいある
0, 0文字列、空配列とか、様々な可能性が排除できない。
少しでも表現を変えると、バグる
例えば、それをtrue に変えると、様々な偽の条件が存在してしまう。
0 の時とか、空配列とか
他の言語は、Rubyに比べて、バグる確率が高い
JavaScript, Python, PHP には、偽が10個ぐらいある
0, 0文字列、空配列とか、様々な可能性が排除できない。
少しでも表現を変えると、バグる
例えば、それをtrue に変えると、様々な偽の条件が存在してしまう。
0 の時とか、空配列とか
他の言語は、Rubyに比べて、バグる確率が高い
96デフォルトの名無しさん (ワッチョイ 311a-wD8z)
2019/01/30(水) 00:31:11.46ID:Xc33HHDg0 >>94
strposは0を返しうるから if (!strpos(...)) だと false が返ってきた(見つからなかった)のか 0 が返ってきた(先頭に見つかった)のか判別出来ない
http://php.net/manual/ja/function.strpos.php
の返り値の警告の部分
strposは0を返しうるから if (!strpos(...)) だと false が返ってきた(見つからなかった)のか 0 が返ってきた(先頭に見つかった)のか判別出来ない
http://php.net/manual/ja/function.strpos.php
の返り値の警告の部分
9795 (ワッチョイ 2e2c-/4Fh)
2019/01/30(水) 00:54:29.54ID:T9WgAkKs0 Ruby 以外の言語では、
!= など、普通の比較演算子では、偽が10個ぐらいあるから危険!
!== などの厳密比較演算子を使うべし!
!= など、普通の比較演算子では、偽が10個ぐらいあるから危険!
!== などの厳密比較演算子を使うべし!
98デフォルトの名無しさん (ワッチョイ 2ea7-UldQ)
2019/01/30(水) 06:04:31.07ID:Bo5lehOR09998 (ワッチョイ 2ea7-UldQ)
2019/01/30(水) 06:22:12.32ID:Bo5lehOR0 >>92のサイト見てなかったけどおそらく別の名前空間内で使うこと想定して
回答したんだろうね
でも例えばこんなコードでも書かない限りは不要
namespace my;
function strpos(string $haystack, string $needle, int $offset = 0)
{
$retval = \strpos($haystack, $needle, $offset);
if ($retval === false) {
return false;
} else {
return $retval + 1;
}
}
var_dump(\strpos('abcde', 'c'));
var_dump(strpos('abcde', 'c'));
回答したんだろうね
でも例えばこんなコードでも書かない限りは不要
namespace my;
function strpos(string $haystack, string $needle, int $offset = 0)
{
$retval = \strpos($haystack, $needle, $offset);
if ($retval === false) {
return false;
} else {
return $retval + 1;
}
}
var_dump(\strpos('abcde', 'c'));
var_dump(strpos('abcde', 'c'));
100デフォルトの名無しさん (ワッチョイ 6eba-L3L3)
2019/01/30(水) 16:29:27.79ID:/IyzrTjj0 >>95
良く分かりました。
良く分かりました。
101デフォルトの名無しさん (ワッチョイ 6eba-L3L3)
2019/01/30(水) 16:32:02.78ID:/IyzrTjj0 >>99
$retval = \strpos($haystack, $needle, $offset);
これだと、どこかよその名前空間で定義されているstrposと言う意味ですか?
$retval = \MY_NameSpace\strpos($haystack, $needle, $offset);
と書くと、特定の名前空間を絶対パスで指定出来るという理解で良いですか?
$retval = \strpos($haystack, $needle, $offset);
これだと、どこかよその名前空間で定義されているstrposと言う意味ですか?
$retval = \MY_NameSpace\strpos($haystack, $needle, $offset);
と書くと、特定の名前空間を絶対パスで指定出来るという理解で良いですか?
102デフォルトの名無しさん (ワッチョイ 2ea7-UldQ)
2019/01/30(水) 22:13:35.19ID:Bo5lehOR0 >>101
>どこかよその名前空間で定義されているstrposと言う意味ですか?
どこかっていうか標準関数のstrposことなんだけど
これはnamespace myで定義しなおした標準関数strposのラッパー関数
もしここで
>$retval = \strpos($haystack, $needle, $offset);
に\をつけないと自身のstrposをさしてしまうので
この関数自体は標準関数のラッパーに過ぎず実装を持たないので正しく動かない
へたしたら再帰処理でループに陥るのと同じ感じになってしまう
>どこかよその名前空間で定義されているstrposと言う意味ですか?
どこかっていうか標準関数のstrposことなんだけど
これはnamespace myで定義しなおした標準関数strposのラッパー関数
もしここで
>$retval = \strpos($haystack, $needle, $offset);
に\をつけないと自身のstrposをさしてしまうので
この関数自体は標準関数のラッパーに過ぎず実装を持たないので正しく動かない
へたしたら再帰処理でループに陥るのと同じ感じになってしまう
103デフォルトの名無しさん (ワッチョイ 2ea7-UldQ)
2019/01/30(水) 22:22:17.50ID:Bo5lehOR0 もう1つの質問に答えてなかった
>$retval = \MY_NameSpace\strpos($haystack, $needle, $offset);
>と書くと、特定の名前空間を絶対パスで指定出来るという理解で良いですか?
まあそんな理解で大丈夫かと
>$retval = \MY_NameSpace\strpos($haystack, $needle, $offset);
>と書くと、特定の名前空間を絶対パスで指定出来るという理解で良いですか?
まあそんな理解で大丈夫かと
104デフォルトの名無しさん (ワッチョイ ffba-zj6v)
2019/01/31(木) 13:36:09.97ID:8UUA+SfH0 >>103
ありがとうございます。
もう一つ教えて下さい。
自分で作ったライブラリ関数群は、自分用の名前空間を定義して
例えば、こんな感じで
namespace MyLib{
function myfunc1(){
・・・
};
function myfunc2(){
・・・
};
}
のように、名前空間に入れておくべきですか?
それとも名前空間無しにしておくほうが使い易いですか?
ありがとうございます。
もう一つ教えて下さい。
自分で作ったライブラリ関数群は、自分用の名前空間を定義して
例えば、こんな感じで
namespace MyLib{
function myfunc1(){
・・・
};
function myfunc2(){
・・・
};
}
のように、名前空間に入れておくべきですか?
それとも名前空間無しにしておくほうが使い易いですか?
105デフォルトの名無しさん (アウアウエー Sa7f-Du1s)
2019/01/31(木) 14:50:10.17ID:87rKAAGWa ユーザー定義関数の引数を変数にした時、渡された変数名も同じでいいんですよね?下の様に
でもいろんな説明みると変更してることが多いけどなんで?
function func($hoge){
・・・
}
func($hoge);
でもいろんな説明みると変更してることが多いけどなんで?
function func($hoge){
・・・
}
func($hoge);
106デフォルトの名無しさん (ワッチョイ ff02-zZHK)
2019/01/31(木) 15:28:08.69ID:hjN211+T0 分けて考えてはいけないという誤解を与えないため
107デフォルトの名無しさん (ワッチョイ ffa7-BT/j)
2019/01/31(木) 15:28:24.41ID:rgWv2NOA0 >>104
名前空間を指定しないということは
標準関数や内部クラスと同じグローバルの名前空間(\)に属することになるので
もちろんコーディングする上での利便性はいい
名前空間がPHP5.3から導入されたように昔はなかったわけだし「やりよう」によっては問題にならない
例えば被ってしまってエラー出たら関数名を変えるとか
被る可能性がかぎりなくないような風変わりな関数名をつけるとか
先人がその「やりよう」が面倒だったから導入したんだけど
実際にはよほど巨大なプロジェクトでもない限り問題は起きないと思う
あとは名前空間の概要見て決めたらいいんじゃないかな
http://php.net/manual/ja/language.namespaces.rationale.php
他人に使ってもらうことを考慮するならつけるべきだけどね
名前空間を指定しないということは
標準関数や内部クラスと同じグローバルの名前空間(\)に属することになるので
もちろんコーディングする上での利便性はいい
名前空間がPHP5.3から導入されたように昔はなかったわけだし「やりよう」によっては問題にならない
例えば被ってしまってエラー出たら関数名を変えるとか
被る可能性がかぎりなくないような風変わりな関数名をつけるとか
先人がその「やりよう」が面倒だったから導入したんだけど
実際にはよほど巨大なプロジェクトでもない限り問題は起きないと思う
あとは名前空間の概要見て決めたらいいんじゃないかな
http://php.net/manual/ja/language.namespaces.rationale.php
他人に使ってもらうことを考慮するならつけるべきだけどね
108デフォルトの名無しさん (ワッチョイ ffba-zj6v)
2019/01/31(木) 19:50:03.57ID:8UUA+SfH0 >>107
解説ありがとうございました。
ところで関数にprivateやpublicを付けられるのはclassの中だけですか?
namespaceの中でprivateな関数を定義することは出来ませんか?
つまり、そのnamespaceの中だけで作業する為の関数で、
外部に公開したくない関数です。
解説ありがとうございました。
ところで関数にprivateやpublicを付けられるのはclassの中だけですか?
namespaceの中でprivateな関数を定義することは出来ませんか?
つまり、そのnamespaceの中だけで作業する為の関数で、
外部に公開したくない関数です。
109デフォルトの名無しさん (ワッチョイ 7f89-SDwV)
2019/02/06(水) 14:06:21.85ID:7EDRIJEy0 質問させてください。
配列で「りんご・バナナ・みかん・りんご・みかん・りんご」とあった場合、
これを「りんご1・バナナ1・みかん1・りんご2・みかん2・りんご3」
みたいに同じものが何個目かを書き加えたいのです。
どうやるといいしょうか?
配列で「りんご・バナナ・みかん・りんご・みかん・りんご」とあった場合、
これを「りんご1・バナナ1・みかん1・りんご2・みかん2・りんご3」
みたいに同じものが何個目かを書き加えたいのです。
どうやるといいしょうか?
110デフォルトの名無しさん (ワッチョイ 7f4d-S1Ul)
2019/02/06(水) 22:56:42.64ID:7o71stsH0 $data=array('りんご','バナナ','みかん','りんご','みかん','りんご');
$result=$count=array();
foreach( $data as $key => $value ){
if( isset($count[$value]) ){
++$count[$value];
}else{
$count[$value]=1;
}
$result[$key]=$value.$count[$value];
}
var_dump($result);
$result=$count=array();
foreach( $data as $key => $value ){
if( isset($count[$value]) ){
++$count[$value];
}else{
$count[$value]=1;
}
$result[$key]=$value.$count[$value];
}
var_dump($result);
111デフォルトの名無しさん (ワッチョイ 6ea7-FtKs)
2019/02/07(木) 09:46:48.28ID:zNwO6Ncy0 print_r(array_count_values($data));
でよくないすか?
でよくないすか?
112デフォルトの名無しさん (ワッチョイ 6ea7-FtKs)
2019/02/07(木) 09:47:44.44ID:zNwO6Ncy0 よく質問読んでなかったw
113デフォルトの名無しさん (ワッチョイ 46ca-mZWF)
2019/02/07(木) 11:09:21.09ID:YOzllYWE0 なんで宿題をやってあげちゃうの
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★2 [蚤の市★]
- 「偽サッチャー」「自滅的」「時代遅れ」 高市首相の経済政策を海外メディアが酷評 [蚤の市★]
- 【ド軍】山本由伸、WBC出場を決断!ドジャースが本人の意向を尊重、佐々木朗希はチームが故障歴を懸念で不参加 [鉄チーズ烏★]
- 米大統領報道官「日本と強固な同盟維持、中国とも協力」 [少考さん★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ ★2 [蚤の市★]
- 【映画】『スーパーマン』のDNAを引き継ぐZ世代の最強ヒロイン!『スーパーガール』 2026年夏に公開予定 予告編も公開 [冬月記者★]
- 女の子集合!
- クランキー(チョコ)高すぎてもう手が出せないんだが
- おまえら宝くじは買わないと当たらないんだぞ?
- ひまでんぼ
- まぁでもボッチちゃんってくだらない男に引っかかってサセ子にされちゃうよね
- 【悲報】女さん「ハローワークで仕事を探してる3-40代の中年男性いるでしょ。あれ何?」 [483447288]
