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

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

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

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

Q&A

解決済

1回答

2175閲覧

laravel5.6にて、userがapplyボタンを押した際、companiesテーブルのidとusersテーブルのidをcompany_userという中間テーブルに挿入したい

chiicheer

総合スコア11

MySQL

MySQL(マイエスキューエル)は、TCX DataKonsultAB社などが開発するRDBMS(リレーショナルデータベースの管理システム)です。世界で最も人気の高いシステムで、オープンソースで開発されています。MySQLデータベースサーバは、高速性と信頼性があり、Linux、UNIX、Windowsなどの複数のプラットフォームで動作することができます。

PHP

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

Laravel 5

Laravel 5は、PHPフレームワークLaravelの最新バージョンで、2014年11月に発表予定です。ディレクトリ構造がが現行版より大幅に変更されるほか、メソッドインジェクションやFormRequestの利用が可能になります。

0グッド

0クリップ

投稿2018/08/31 11:30

編集2018/08/31 12:25

前提・実現したいこと

laravel5.6にて、applyボタンを押した際、companiesテーブルのidをcompany_idとしてまたusersテーブルのidをuser_idとして、company_userという中間テーブルの中に情報を飛ばしたい。どのページにどのコードを記載すれば、中間テーブルに情報をinsert出来るのかがわかりません。

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

if ($request->method() == 'OPTIONS') { return (new Route('OPTIONS', $request->path(), function () use ($methods) { return new Response('', 200, ['Allow' => implode(',', $methods)]); }))->bind($request); } $this->methodNotAllowed($methods); } /** * Throw a method not allowed HTTP exception. * * @param array $others * @return void * * @throws \Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException */ protected function methodNotAllowed(array $others) { throw new MethodNotAllowedHttpException($others); } /** * Get routes from the collection by method. * * @param string|null $method * @return array */ public function get($method = null) { return is_null($method) ? $this->getRoutes() : Arr::get($this->routes, $method, []); } /** * Determine if the route collection contains a given named route. * * @param string $name * @return bool */ public function hasNamedRoute($name) Arguments

エラーメッセージ
""

該当のソースコード

↓コレがcompanies.showページのForm部分です。

{!!Form::open(['url'=>['/companies/{{$company->id}}'], 'method'=>'POST'])!!} {{ csrf_field() }} {{Form::hidden('company_id', '$company->id')}} {{Form::hidden('user_id', 'Auth::user()->id')}} {{Form::submit('apply',['class'=>'btn btn-danger'])}} {!! Form::close() !!}

試したこと

《companiesコントローラーページのstore部分に》

public function store(Request $request) { $company=Company::find($request->input('company_id')); $user=User::where('user_id', Auth::user()->id)->get(); if($user && $company){ $company->users()->attach($user->id); } }

を記載してみた。

《companyモデルの中↓》

<?php namespace App; use Illuminate\Database\Eloquent\Model; class Company extends Model { protected $fillable= array('country_id', 'title', 'description'); public function country(){ return $this->belongsTo('App\Country'); } public function user() { return $this->belongsToMany('App\User')->using('App\Company_User'); } }

《userモデルページの中↓》

<?php namespace App; use Illuminate\Notifications\Notifiable; use Illuminate\Foundation\Auth\User as Authenticatable; class User extends Authenticatable { use Notifiable; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'name', 'email', 'password' ]; /** * The attributes that should be hidden for arrays. * * @var array */ protected $hidden = [ 'password', 'remember_token', ]; public function company (){ return $this->belongsToMany('App\Company')->using('App\Company_User'); } }

また、$php artisan make:migration create_company_user_table
で中間テーブルを作成し、migrationファイルの中も

public function up() { Schema::create('company_user', function (Blueprint $table){ $table->increments('id'); $table->integer('company_id')->unsigned(); $table->foreign('company_id')->references('id')->on('companies'); $table->integer('user_id')->unsigned(); $table->foreign('user_id')->references('id')->on('users'); $table->timestamps(); }); }

のように記載した後に、$php artisan migrate を行い正常にmigrateは出来ているのですが、
試しで$php artisan tinkerを使用して情報を中間テーブルにinsertしようとするとテーブルが見つからないというようなエラーが出ます。

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

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

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

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

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

guest

回答1

0

ベストアンサー

return $this->belongsToMany('App\User')->using('App\Company_User');
return $this->belongsToMany('App\Company')->using('App\Company_User');

これらの ->using() は不要です。
指定しないといけないのはモデルではなくテーブルです(命名規則に従えば書かなくてもいいですがその話は割愛します)。

https://readouble.com/laravel/5.6/ja/eloquent-relationships.html#many-to-many

return $this->belongsToMany('App\User', 'company_user');
return $this->belongsToMany('App\Company', 'company_user');

これで良いです。

https://readouble.com/laravel/5.6/ja/eloquent-relationships.html

モデルを結びつけている中間テーブルにレコードを挿入することにより、ユーザーに役割を持たせるにはattachメソッドを使います。

$user=User::where('user_id', Auth::user()->id)->get();

ここは find() を使わないとエラーが出ます。
where()->get() ではモデル型でなくコレクション型が返却されるからです。

if($user && $company){

個人的にはこの判定式は美しくないので findOrFail を使います。

https://readouble.com/laravel/5.6/ja/eloquent.html

モデルが見つからない時に、例外を投げたい場合もあります。これは特にルートやコントローラの中で便利です。findOrFailメソッドとクエリの最初の結果を取得するfirstOrFailメソッドは、該当するレコードが見つからない場合にIlluminate\Database\Eloquent\ModelNotFoundException例外を投げます。

Auth::user()->idAuth::id() を使った方がスマートですね。

public function store(Request $request) { $company=Company::findOrFail($request->input('company_id')); $user=User::findOrFail(Auth::id()); $company->users()->attach($user->id); }

投稿2018/08/31 13:53

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

chiicheer

2018/08/31 16:07

回答して頂きありがとうございます。 コードをご指摘頂いた通りに変更してみましたが、同じ""だけのエラーメッセージが反って来ます。 私のコードを書いている場所自体は正しいでしょうか?また、中間テーブルのコントローラーは必要ですか? applyボタンを押すだけで、userが現在いるcompanyページのidとuserのidを中間テーブルに送信するという事は可能なのでしょうか?
退会済みユーザー

退会済みユーザー

2018/08/31 16:22

その前にtinkerで動作確認して下さい。
chiicheer

2018/08/31 16:31

すみませんでした。 tinker試しましたが、できませんでした。 >>> App\Company_User::count() PHP Fatal error: Class 'App/Company_User' not found in Psy Shell code on line 1 >>> App\CompanyUser::count() PHP Fatal error: Class 'App/CompanyUser' not found in Psy Shell code on line 1 >>> App\Company_Users::count() PHP Fatal error: Class 'App/Company_Users' not found in Psy Shell code on line 1 >>> App\company_user::count() PHP Fatal error: Class 'App/company_user' not found in Psy Shell code on line 1 >>> App\company_user::count() 正しいテーブル名を入れてもエラーになります。 この場合何が問題なのでしょうか?
退会済みユーザー

退会済みユーザー

2018/08/31 17:04 編集

中間テーブルモデルはこの場合要りません。attachでデータを作れるかを確認して下さい。
退会済みユーザー

退会済みユーザー

2018/08/31 17:02

あ、 public function user() → users() public function company() → companies() に直して下さい。
chiicheer

2018/08/31 17:36

書き直しました。 applyボタンを押してからの画面は同じエラー画面になります。 中間テーブルのModelページは作っていません。 Controllerページは必要ですか?
退会済みユーザー

退会済みユーザー

2018/08/31 17:43 編集

> 中間テーブルのModelページは作っていません。 それだと App\Company_User::count() は実行できないですよね。作っていないクラス で何かしようとしているので `: Class 'App/Company_User' not found` = 「Company_Userというクラスがないよ」と怒られています。テーブルがないのではなくクラスがないと言われています。まずはここを理解しないといけないです。 > Controllerページは必要ですか? CompanyUserControllerクラスのことを言っているのでしたら不要です tinkerでの動作確認はできたでしょうか? これが済まないことにはコントローラを見ても原因特定が困難です。 より小さい範囲から動作を確かめていくのがトラブルシュートの基本です。
chiicheer

2018/08/31 19:50 編集

初歩的な質問ばかりで申し訳ございません。 ・Company_User.phpモデルファイルを作成し、tinkerを行いましたが次のようなエラーが出ます。 >>> App\Company_User::count() Illuminate/Database/QueryException with message 'SQLSTATE[42S02]: Base table or view not found: 1146 Table '~.company__users' doesn't exist (SQL: select count(*) as aggregate from `company__users`)' SQLのcompany_userテーブルとCompany_User.phpファイルとcreate_company_user_table.phpファイルを一度削除。 その後にもう一度上記のファイルを作り直しても同じエラーが反って来ます。 ・migrateionファイルを作成する際、 >php artisan make:model Company_User -m のコマンドで作成すると、テーブル名が勝手にcompany__usersと”_”が2つになってuserも複数形になるのですがこれは中間テーブルの決まりなのでしょうか? >php artisan make:model Company_User >php artisan make:migration create_company_user_table のようにそれぞれ作成すると名前は正しく入るのですが、tinkerをする際に同じ >>> App\Company_User::count() Illuminate/Database/QueryException with message 'SQLSTATE[42S02]: Base table or view not found: 1146 Table '~.company__users' doesn't exist (SQL: select count(*) as aggregate from `company__users`)' のエラーがでます。 SQLの中のテーブル名もcompany_userで作成はできています。
chiicheer

2018/08/31 20:58

>php artisan make:model Company_User -m のコマンドで作成し、勝手に作成される中間テーブル名=”company__users”のまま進めて行ったら tinkerを使用し手動でcompany_idとuser_idをinsertする事は出来ました。
退会済みユーザー

退会済みユーザー

2018/09/01 04:34

いえ、まずはcompany_userモデルを使って何かしようとすることから離れて下さい。 そのモデルはそもそも不要だから作っていないのです。 コントローラでもcompany_userモデルを使ってinsertするということはしていないです。 コントローラでやっていないことをtinkerで試しても検証にならないですよね。 素直にコントローラでやりたいことをtinkerで試せば良いです。 $company=Company::findOrFail($request->input('company_id')); $user=User::findOrFail(Auth::id()); $company->users()->attach($user->id); ↑をtinkerで試して下さい。 $request->input('company_id')とAuth::idは実際に存在するレコードのIDを直接指定して下さい。
chiicheer

2018/09/01 11:48

tinkerで上記コード試しましたが、1つも動きませんでした。 私が他のページに書いている根本的なコードが間違っている気がします・・・ 《companiesテーブル》 id, name,description 《usersテーブル》 id, name,....... userは多くのcompanyにapplyできて、且つcompanyは多くのuserを持つという状況にしたいです。 その場合中間テーブルを作成して、companiesのidとusersのidを紐付ける必要があると考えたのですが、この考え方は合っていますでしょうか?
退会済みユーザー

退会済みユーザー

2018/09/01 11:53

> tinkerで上記コード試しましたが、1つも動きませんでした。 実行したコードとエラー内容を教えて下さい。 > userは多くのcompanyにapplyできて、且つcompanyは多くのuserを持つという状況にしたいです。 その場合中間テーブルを作成して、companiesのidとusersのidを紐付ける必要があると考えたのですが、この考え方は合っていますでしょうか? 合っていますよ。
chiicheer

2018/09/02 08:41

tinkerに入力するコードが分からなかったので、教えて頂いた通りにそのまま入力してしまいました。 >>> $company=Company::findOrFail($request->input('1')); [!] Aliasing 'Company' to 'App\Company' for this Tinker session. PHP Notice: Undefined variable: request in C:/Users/Chihiro Suzuki/Desktop/africa/africaworks-testeval()'d code on line 1 >>> $company=App\Company::findOrFail($request->input('1')); PHP Notice: Undefined variable: request in C:/Users/Chihiro Suzuki/Desktop/africa/africaworks-testeval()'d code on line 1 >>> $company=App\Company::findOrFail($company->id('1')); PHP Notice: Undefined variable: company in C:/Users/Chihiro Suzuki/Desktop/africa/africaworks-testeval()'d code on line 1 >>> $user=App\User::findOrFail(Auth::id()); Illuminate/Database/Eloquent/ModelNotFoundException with message 'No query results for model [App/User].' >>> $user=User::findOrFail(Auth::id()); [!] Aliasing 'User' to 'App\User' for this Tinker session. Illuminate/Database/Eloquent/ModelNotFoundException with message 'No query results for model [App/User].' >>> $user=App\User::findOrFail(Auth::id(1)); Illuminate/Database/Eloquent/ModelNotFoundException with message 'No query results for model [App/User].' >>> $company->user()->attach($user->id); PHP Notice: Undefined variable: company in C:/Users/Chihiro Suzuki/Desktop/africa/africaworks-testeval()'d code on line 1 >>> $company__users= new App\Company_Users() PHP Fatal error: Class 'App/Company_Users' not found in Psy Shell code on line 1
退会済みユーザー

退会済みユーザー

2018/09/02 09:03 編集

うーん、質問者さんのレベル感が分かっておらず、どのあたりから説明すべきか悩んでいます。 例えば、今回提示頂いたコードの内容は「よく分からないけどコピペした」みたいな感じなのでしょうか? このtinkerの操作が分からないとteratailで質問しても回答を理解するのに難儀すると思いますので、『PHPフレームワークLaravel入門』という本を買って手元に置いておくと良いと思います。 私も持っています。 本題に戻りまして、 $company = App\Company::findOrFail(1) のようにfindOrFail関数に直接idの数値を渡して下さい。 idは存在するレコードのものを渡して下さい(なので1ではない可能性もあります)。 レコードが1件も存在していないようでしたら、例えばuserなら App\User::create(['name' => 'test', 'email' => 'test@example.com', 'password' => 'secret']) のようにcreate関数を使ってレコードを作成して下さい。 companyも同じように作れます。 今の所、心配されている部分の以前の問題として、文法が間違っていることによるエラーが出ているので、全体設計が間違っているなどはこちらからは分からないです。
chiicheer

2018/09/02 09:58

tinkerで情報を呼び出す事は出来ました。 >>> $company=App\Company::findOrFail(1) => App\Company {#2906 id: 1, country_id: "1", title: "aaaaaaaaaaaaaaaaaaaaaa", description: "aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa", created_at: null, updated_at: null, } >>> $user=App\User::findOrFail(1) => App\User {#2901 id: 1, name: "chihiro", email: "chiicheer@gmail.com", created_at: "2018-08-31 20:44:00", updated_at: "2018-08-31 20:44:00", role: "user", }
退会済みユーザー

退会済みユーザー

2018/09/02 09:59

では、 $company->users()->attach($user->id); ができるか確認して下さい。
chiicheer

2018/09/02 11:01

このコマンドではUndefinedのエラーが出ます。 >>> $company->users()->attach($user()->id) PHP Notice: Undefined variable: company in line 1
退会済みユーザー

退会済みユーザー

2018/09/02 12:40

文法エラーです。Undefined variable: companyと出ています。その変数は定義されていない、という意味です。 $company = App\Company::findOrFail(1) $user=App\User::findOrFail(1) で変数を定義してからattachして下さい。 なお、tinkerは終了するとそれまでの状態は覚えていませんので、変数を定義し直す必要があります。 それから、 $user()->idではなく$user->idです。
chiicheer

2018/09/02 12:51

ありがとうございます!! >>> $company->users()->attach($user->id) => null という結果になりました。
退会済みユーザー

退会済みユーザー

2018/09/02 13:04

エラーが出ていないのでできている感じがします。 \DB::table('company_user')->get() の結果を教えて下さい。 tinkerです。
chiicheer

2018/09/02 13:51

>>> \DB::table('company__users')->get() => Illuminate\Support\Collection {#2909 all: [ {#2904 +"id": 1, +"company_id": 1, +"user_id": 1, +"created_at": "2018-08-31 20:55:37", +"updated_at": "2018-08-31 20:55:37", }, {#2906 +"id": 2, +"company_id": 2, +"user_id": 2, +"created_at": null, +"updated_at": null, }, {#2907 +"id": 3, +"company_id": 1, +"user_id": 1, +"created_at": null, +"updated_at": null, }, {#2899 +"id": 4, +"company_id": 1, +"user_id": 1, +"created_at": null, +"updated_at": null, }, ], } >>> 上記のようになりました。 id:2までは直接手動でinsertしたのですが、id3と4番目はいろいろコードを試してる間に知らない間に入っていました。
退会済みユーザー

退会済みユーザー

2018/09/02 13:53

もう一度attachするとcompany_usersテーブルのレコード増えるでしょうか?
退会済みユーザー

退会済みユーザー

2018/09/02 13:58

user_idとcompany_idにもちゃんと値は入っていますか?入っていたらOKで、やっとコントローラの検証に入れます。 とりあえずコントローラアクションを動作させてレコードが増えるかの確認をします。
chiicheer

2018/09/02 14:01

user_id、company_id共に値入っています!! コントローラーはCompaniesController.phpでしょうか?
退会済みユーザー

退会済みユーザー

2018/09/02 14:07

> user_id、company_id共に値入っています!! では中間テーブルへのレコード挿入まではOKです。 > コントローラーはCompaniesController.phpでしょうか? それのstoreメソッドではなかったでしたっけ?
chiicheer

2018/09/02 14:12

はい!storeメッソドあります! その中に直接同じコードを書けばよいのでしょうか? public function store(Request $request) { $company=App\Company::findOrFail() $user=App\User::findOrFail() $company->users()->attach($user->id) }
退会済みユーザー

退会済みユーザー

2018/09/02 14:31

いや、もう書いてますよね。 ブラウザの操作で動作確認をすればいいです。
退会済みユーザー

退会済みユーザー

2018/09/02 14:34

> その中に直接同じコードを書けばよいのでしょうか? これは行わないで下さい。 さっきのは「tinkerでできる範囲で」コントローラのシミュレートをしただけです。
chiicheer

2018/09/02 14:48

$company=Company::findOrFail($request->input('company_id')); $user=User::findOrFail(Auth::id()); $company->users()->attach($user->id); $company=Company::findOrFail(); $user=User::findOrFail(); $company->users()->attach($user->id); どちらのパターンで書いても、以前と同じ””No messageのエラーになります。
退会済みユーザー

退会済みユーザー

2018/09/02 14:52

質問文にエラー画面のキャプチャをあげて欲しいです。
退会済みユーザー

退会済みユーザー

2018/09/02 14:57 編集

エラーになるのそれはそれとして、中間テーブルのレコードは増えてないでしょうか?
退会済みユーザー

退会済みユーザー

2018/09/02 14:58

エラーになる原因はおそらく storeアクションの最後で return redirect()していないからですね
chiicheer

2018/09/02 15:03

/** * Throw a method not allowed HTTP exception. * * @param array $others * @return void * * @throws \Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException */ protected function methodNotAllowed(array $others) { throw new MethodNotAllowedHttpException($others); } /** * Get routes from the collection by method. * * @param string|null $method * @return array */ public function get($method = null) { return is_null($method) ? $this->getRoutes() : Arr::get($this->routes, $method, []); } /** * Determine if the route collection contains a given named route. * * @param string $name * @return bool */ public function hasNamedRoute($name) Arguments ""
chiicheer

2018/09/02 15:04

↑エラーコードです。 中間テーブルも増えていないです。
chiicheer

2018/09/02 15:05

$company=Company::findOrFail($request->input('company_id')); $user=User::findOrFail(Auth::id()); $company->users()->attach($user->id); return redirect('/companies/{{$company->id}}')->with('success', 'Successfully applyed'); return redirectも書き足してみました!!
退会済みユーザー

退会済みユーザー

2018/09/02 15:05

このボタン?があるページのルーティングは何ですか?
chiicheer

2018/09/02 15:10

Route::resource("countries", "CountriesController"); Route::resource("companies", "CompaniesController"); Route::resource("users", "UsersController"); Route::post("/companies/{{company->id}}", "CompaniesController@store"); 元々resourceだけだったのですが、postも書いてみました。
退会済みユーザー

退会済みユーザー

2018/09/02 15:17

form openのurl指定の部分を消して['route' => 'companies.store']に差し替えて下さい。エラー変わらないでしょうか
chiicheer

2018/09/02 15:44

{!!Form::open(['route' =>['companies.store'], 'method'=>'POST' ])!!} に書き換えしてみましたが、errorに変わりはないです。
退会済みユーザー

退会済みユーザー

2018/09/02 15:50

{!!Form::open(['route' =>'companies.store'])!!} にしても同じでしょうか? ターミナルでphp artisan routes:listした結果を教えてください。
chiicheer

2018/09/02 16:30

Domain | Method | URI | Name | Action | Middleware | +--------+-----------+---------------------------+-------------------+------------------------------------------------------------------------+--------------+ | | GET|HEAD | api/user | | Closure | api,auth:api | | | POST | companies | companies.store | App\Http\Controllers\CompaniesController@store | web | | | GET|HEAD | companies | companies.index | App\Http\Controllers\CompaniesController@index | web | | | GET|HEAD | companies/create | companies.create | App\Http\Controllers\CompaniesController@create | web | | | GET|HEAD | companies/{company} | companies.show | App\Http\Controllers\CompaniesController@show | web | | | PUT|PATCH | companies/{company} | companies.update | App\Http\Controllers\CompaniesController@update | web | | | DELETE | companies/{company} | companies.destroy | App\Http\Controllers\CompaniesController@destroy | web | | | GET|HEAD | companies/{company}/edit | companies.edit | App\Http\Controllers\CompaniesController@edit | web | | | GET|HEAD | companies/{id} | | App\Http\Controllers\CompaniesController@show | web | | | POST | companies/{{company->id}} | | App\Http\Controllers\CompaniesController@store | web | | | POST | countries | countries.store | App\Http\Controllers\CountriesController@store | web | | | GET|HEAD | countries | countries.index | App\Http\Controllers\CountriesController@index | web | | | GET|HEAD | countries/create | countries.create | App\Http\Controllers\CountriesController@create | web | | | GET|HEAD | countries/{country} | countries.show | App\Http\Controllers\CountriesController@show | web | | | PUT|PATCH | countries/{country} | countries.update | App\Http\Controllers\CountriesController@update | web | | | DELETE | countries/{country} | countries.destroy | App\Http\Controllers\CountriesController@destroy | web | | | GET|HEAD | countries/{country}/edit | countries.edit | App\Http\Controllers\CountriesController@edit | web | | | GET|HEAD | home | home | App\Http\Controllers\HomeController@index | web,auth | | | GET|HEAD | login | login | App\Http\Controllers\Auth\LoginController@showLoginForm | web,guest | | | POST | login | | App\Http\Controllers\Auth\LoginController@login | web,guest | | | POST | logout | logout | App\Http\Controllers\Auth\LoginController@logout | web | | | POST | password/email | password.email | App\Http\Controllers\Auth\ForgotPasswordController@sendResetLinkEmail | web,guest | | | GET|HEAD | password/reset | password.request | App\Http\Controllers\Auth\ForgotPasswordController@showLinkRequestForm | web,guest | | | POST | password/reset | | App\Http\Controllers\Auth\ResetPasswordController@reset | web,guest | | | GET|HEAD | password/reset/{token} | password.reset | App\Http\Controllers\Auth\ResetPasswordController@showResetForm | web,guest | | | GET|HEAD | register | register | App\Http\Controllers\Auth\RegisterController@showRegistrationForm | web,guest | | | POST | register | | App\Http\Controllers\Auth\RegisterController@register | web,guest | | | GET|HEAD | users | users.index | App\Http\Controllers\UsersController@index | web | | | POST | users | users.store | App\Http\Controllers\UsersController@store | web | | | GET|HEAD | users/create | users.create | App\Http\Controllers\UsersController@create | web | | | GET|HEAD | users/{user} | users.show | App\Http\Controllers\UsersController@show | web | | | PUT|PATCH | users/{user} | users.update | App\Http\Controllers\UsersController@update | web | | | DELETE | users/{user} | users.destroy | App\Http\Controllers\UsersController@destroy | web | | | GET|HEAD | users/{user}/edit | users.edit | App\Http\Controllers\UsersController@edit | web | +--------+-----------+---------------------------+-------------------+-----------
chiicheer

2018/09/02 16:31

{!!Form::open(['route' =>'companies.store'])!!} でも同じエラー画面のままでした。
退会済みユーザー

退会済みユーザー

2018/09/03 00:56

うーん、なんだろう。 ちょっと全体を見ないと難しい感じがしてきたのでgithubにあげてURLを貼れますか?
退会済みユーザー

退会済みユーザー

2018/09/03 05:02 編集

https://github.com/dyoshikawa/teratail144162/pull/1/files 直しました。 私の環境で動作させる都合上companyテーブルのマイグレーションを変更したりしていますがその辺りは取り込まないで下さい。 No Messageエラーについてはやはり {!!Form::open(['route' => 'companies.store'])!!} に変更することで直りましたので、この点再確認お願いします。 applyボタンを押すことで中間テーブルへレコードが追加されることも確認済です。 二回押してからtinkerで確認した結果が以下です。 DB::table('company__users')->get() => Illuminate\Support\Collection {#2906 all: [ {#2903 +"id": 1, +"company_id": 1, +"user_id": 1, +"created_at": null, +"updated_at": null, }, {#2901 +"id": 2, +"company_id": 1, +"user_id": 1, +"created_at": null, +"updated_at": null, }, ], }
chiicheer

2018/09/03 05:55

無事に動きました!!!! 本当にありがとうございます。 是非またご教授頂ければと思います。
退会済みユーザー

退会済みユーザー

2018/09/03 06:00

はい、引き続き頑張って下さい。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問