. */ namespace App\Http\Controllers\Admin; use App\Account; use App\ContactsList; use App\Http\Controllers\Controller; use Illuminate\Http\Request; class ContactsListContactController extends Controller { public function add(Request $request, int $contactsListId) { $accounts = Account::orderBy('updated_at', $request->get('updated_at_order', 'desc')); if ($request->has('search')) { $accounts = $accounts->where('username', 'like', '%' . $request->get('search') . '%'); } if ($request->has('domain')) { $accounts = $accounts->where('domain', $request->get('domain')); } return view('admin.contacts_list.contacts.add', [ 'domains' => Account::groupBy('domain')->pluck('domain'), 'contacts_list' => ContactsList::findOrFail($contactsListId), 'params' => [ 'contacts_list_id' => $contactsListId ], 'accounts' => $accounts->whereNotIn('id', function ($query) use ($contactsListId) { $query->select('contact_id') ->from('contacts_list_contact') ->where('contacts_list_id', $contactsListId); })->paginate(20)->appends($request->query()), ]); } public function search(Request $request, int $contactsListId) { return redirect()->route('admin.contacts_lists.contacts.add', ['contacts_list_id' => $contactsListId] + $request->except('_token')); } public function store(Request $request, int $contactsListId) { $request->validate([ 'contacts_ids' => 'required|exists:accounts,id' ]); $contactsList = ContactsList::findOrFail($contactsListId); $contactsList->contacts()->detach($request->get('contacts_ids')); // Just in case $contactsList->contacts()->attach($request->get('contacts_ids')); return redirect()->route('admin.contacts_lists.edit', $contactsList->id); } public function destroy(Request $request, int $contactsListId) { $request->validate([ 'contacts_ids' => 'required|exists:accounts,id' ]); $contactsList = ContactsList::findOrFail($contactsListId); $contactsList->contacts()->detach($request->get('contacts_ids')); return redirect()->route('admin.contacts_lists.edit', $contactsList->id); } }