現在laravelでグループを作成機能を作っておりまして、グループ作成時にグループに入れたいユーザーを選んでグループを作るという機能を作っています。
グループ作成時にグループに入れたいユーザーの情報を配列にしてgroup_belongカラム(int型)に格納するようにしているのですが、GroupController.phpの$groups->save();
の所でCall to a member function save() on arrayというエラーが出てしまい保存することができません。このエラーについて調べてみたのですが、ほとんど情報がなく困っています。
group_belongの記述を削除し、nameだけの時は保存できたので、
$groups = $request->input('group_belong');
の書き方が怪しいと思っています。
このエラーを解決するにはどうすればよいでしょうか?
(該当コードは下記に添付しています。)
create.blade.php
<h1>グループを作成する</h1> <div class="title-under">グループを作成したいユーザーのチェックボックスをonにしてください。</div> <div class="container"> <form method="post" action="/groups"> {{ csrf_field() }} <div class="row"> @foreach($users as $user) <div class="col-md-4"> <div class="group-user">{{$user->id}}:{{$user->name}} <input type="checkbox" name="group_belong[]" value="{{$user->id}}"></div> </div> @endforeach </div> <div class=" row"> <div class="col-md-6"> <div class="form-group"> <label>グループ名入力</label> <input type="text" class="form-control" name="name"> </div> </div> </div> <input type="submit" value="作成" class="btn btn-primary"> </form> {{ $users->links() }} </div>
GroupController.php
class GroupController extends Controller { public function index() { return view('group.index'); } public function create() { $users = User::orderBy('created_at', 'desc')->paginate(9); return view('group.create', ['users' => $users]); } public function store(Request $request) { $groups = new Group; $groups->name = $request->name; $groups = $request->input('group_belong'); $groups->save(); return redirect('/groups'); } public function invite() { return view('group.invite'); } public function cancel() { return view('group.cancel'); } }
回答1件
あなたの回答
tips
プレビュー