質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.35%
Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

Q&A

1回答

1748閲覧

PHP(Laravel)中間テーブルに複数カラムを保存する

shozo_t

総合スコア0

Laravel

LaravelとはTaylor Otwellによって開発された、オープンソースなPHPフレームワークです。Laravelはシンプルで表現的なシンタックスを持ち合わせており、ウェブアプリケーション開発の手助けをしてくれます。

PHP

PHPは、Webサイト構築に特化して開発されたプログラミング言語です。大きな特徴のひとつは、HTMLに直接プログラムを埋め込むことができるという点です。PHPを用いることで、HTMLを動的コンテンツとして出力できます。HTMLがそのままブラウザに表示されるのに対し、PHPプログラムはサーバ側で実行された結果がブラウザに表示されるため、PHPスクリプトは「サーバサイドスクリプト」と呼ばれています。

0グッド

0クリップ

投稿2021/02/18 06:35

前提・実現したいこと

プログラミング初学者です。 現在PHP(Laravel)でプロジェクトに社員をアサインするシステムを作成中です。 プロジェクトの開始日から終了日までの期間に他のプロジェクトにアサインされていない社員を表示させ、社員をプロジェクトに追加(アサイン)する機能を実装したいです。 中間テーブルにproject_id(unsignedBigInteger),user_id(unsignedBigInteger),start_date(date),end_date(date)を保存したいです。 上記を実装中に以下のエラーメッセージが発生しました。

発生している問題・エラーメッセージ

Argument 2 passed to Symfony\Component\HttpFoundation\RedirectResponse::__construct() must be of the type integer, array given, called in /home/ec2-user/environment/projectmanagement/vendor/laravel/framework/src/Illuminate/Routing/Redirector.php on line 203

該当のソースコード

PHP(Laravel)

1 2◾️Migration 3class CreateProjectUserTable extends Migration 4{ 5 /** 6 * Run the migrations. 7 * 8 * @return void 9 */ 10 public function up() 11 { 12 Schema::create('project_user', function (Blueprint $table) { 13 $table->unsignedBigInteger('project_id'); 14 $table->unsignedBigInteger('user_id'); 15 $table->date('start_date'); 16 $table->date('end_date'); 17 $table->timestamps(); 18 //複合キーを定義 19 $table->primary(['project_id','user_id']); 20 }); 21 } 22 23 /** 24 * Reverse the migrations. 25 * 26 * @return void 27 */ 28 public function down() 29 { 30 Schema::dropIfExists('project_user'); 31 } 32} 33◾️Model 34 35class Project extends Model 36{ 37 protected $guarded = []; 38 39 public function users() 40 { 41 return $this->belongsToMany('App\User')->withPivot('start_date','end_date')->withTimestamps(); 42 } 43 44} 45 46◾️Controller 47class ProjectController extends Controller 48{ 49 50 public function record(Request $request) 51 { 52 $project = Project::find($request->id); 53 54 $project->users()->sync([$request->user_id => ['start_date' => $request->start_date,'end_date' => $request->end_date]]); 55 56 return redirect('admin/project/index',compact('project')); 57 } 58} 59 60◾️View 61@section('content') 62<div class="container"> 63 <div class="row"> 64 <h2>プロジェクト</h2> 65 </div> 66 <div class="row"> 67 <div class="list-news col-md-12 mx-auto"> 68 <table class="table table-dark"> 69 <thead> 70 <tr> 71 <th>プロジェクト名</th> 72 <th>開始日</th> 73 <th>終了日</th> 74 <th>人数</th> 75 <th>必要資格・人数</th> 76 </tr> 77 </thead> 78 <tbody> 79 <tr> 80 <td>{{ $project->project_name }}</td> 81 <td>{{ $project->start_date }}</td> 82 <td>{{ $project->end_date }}</td> 83 <td>{{ $project->number_of_people }}</td> 84 @foreach($project->licenses as $license) 85 <td>{{ $license->name }}×{{ $license->pivot->required_least_count }}</td> 86 @endforeach 87 </tr> 88 </tbody> 89 </table> 90 </div> 91 </div> 92 <div class="row"> 93 <div class="list-news col-md-12 mx-auto"> 94 <h2>アサイン可能な人</h2> 95 <tr> 96 <th></th> 97 <th>名前</th> 98 <th>開始日</th> 99 <th>終了日</th> 100 <th>資格</th> 101 </tr> 102 <form action="{{ action('Admin\ProjectController@record') }}" method="post"> 103 @csrf 104 @foreach($users as $user) 105 <tr> 106 <td><img src="{{ asset('storage/image/' . $user->image) }}" height="50" width="50"></td> 107 <td>{{$user->name }}</td> 108 <td><input type="date" name="start_date" value="{{ $project->start_date }}"></td> 109 <td><input type="date" name="end_date" value="{{ $project->end_date }}"></td> 110 <td> 111 <input type="submit" class="btn btn-primary" value="追加"> 112 </td> 113 <td><input type="hidden" id="user_id" name="user_id" value="{{ $user->id }}"></td> 114 <td><input type="hidden" id="id" name="id" value="{{ $project->id }}"></td> 115 </tr> 116 @endforeach 117 </form> 118 </div> 119 </div> 120</div> 121 122@endsection

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

diff

1- $project->users()->sync([$request->user_id => ['start_date' => $request->start_date,'end_date' => $request->end_date]]); 2+ $project->users()->sync([$request->user_id, ['start_date' => $request->start_date,'end_date' => $request->end_date]]);

投稿2021/02/18 06:48

phper.k

総合スコア3923

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

shozo_t

2021/02/18 06:58

早速のご回答ありがとうございます。 +の方で試しましたが、同じエラーメッセージが表示されました。 デバッグ結果は下記になりました。 array:2 [▼ 0 => "5" 1 => array:2 [▼ "start_date" => "2021-01-30" "end_date" => "2021-01-31" ] ]
phper.k

2021/02/18 08:18

なんのデバッグやねん
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.35%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問