Well, let's try to dd($request) to see if there's something in your request at all. This might shed some light or allow you to correct some typo's if that's the case.
Feb 24, 2017
3
Level 1
SQLSTATE[HY000]: General error: 1364 - Laravel isn't building the query properly
I'm trying to build a simple community system. Nonetheless, Laravel is returning an error every time I submit the form to create a new community (or Hub).
Here's my Hub controller:
<?php
namespace App\Http\Controllers;
use App\Hub;
use App\Group;
use App\Role;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Validator;
use GrahamCampbell\Markdown\Facades\Markdown;
use App\Events\CreatedHub;
class HubController extends Controller
{
public function __construct()
{
$this->middleware('auth');
}
public function create()
{
return view('hubs.createnew');
}
public function store(Request $request)
{
$this->validator($request->all())->validate();
event(new CreatedHub($hub = $this->createHub($request->all())));
return $this->createHubRoles($request->input('name')) ? redirect('/hubs/'.$request->input('name')) : back()->withErrors(array('message' => 'Erro ao criar o Hub.'));
}
private function validator(array $data)
{
return Validator::make($data, [
'display_name' => 'required|max:255',
'name' => 'alpha_dash|max:255|unique:hubs',
'description' => 'present',
'visible' => 'boolean',
'nsfw' => 'boolean',
'dice' => 'boolean',
]);
}
private function createHub(array $data)
{
return Hub::create([
'name' => $data['name'],
'display_name' => $data['display_name'],
'description' => $data['description'],
'description_html' => Markdown::convertToHtml($data['description']),
'visible' => $data['visible'],
'nsfw' => $data['nsfw'],
'dice' => $data['dice'],
]);
}
private function createHubRoles(string $name)
{
$owner = Role::find(1);
$group = $this->createHubGroup($name);
return Auth::user()->attachRole($owner, $group);
}
private function createHubGroup(string $name)
{
return Group::create([
'name' => $name,
]);
}
And here is the traceback:
QueryException in Connection.php line 647:
SQLSTATE[HY000]: General error: 1364 Field 'name' doesn't have a default value (SQL: insert into `hubs` (`updated_at`, `created_at`) values (2017-02-24 11:26:44, 2017-02-24 11:26:44))
* in Connection.php line 647
* at Connection->runQueryCallback('insert into `hubs` (`updated_at`, `created_at`) values (?, ?)', array('2017-02-24 11:26:44', '2017-02-24 11:26:44'), object(Closure)) in Connection.php line 607
* at Connection->run('insert into `hubs` (`updated_at`, `created_at`) values (?, ?)', array('2017-02-24 11:26:44', '2017-02-24 11:26:44'), object(Closure)) in Connection.php line 450
* at Connection->statement('insert into `hubs` (`updated_at`, `created_at`) values (?, ?)', array('2017-02-24 11:26:44', '2017-02-24 11:26:44')) in Connection.php line 404
* at Connection->insert('insert into `hubs` (`updated_at`, `created_at`) values (?, ?)', array('2017-02-24 11:26:44', '2017-02-24 11:26:44')) in Processor.php line 32
* at Processor->processInsertGetId(object(Builder), 'insert into `hubs` (`updated_at`, `created_at`) values (?, ?)', array('2017-02-24 11:26:44', '2017-02-24 11:26:44'), 'id') in Builder.php line 2196
* at Builder->insertGetId(array('2017-02-24 11:26:44', '2017-02-24 11:26:44'), 'id') in Builder.php line 1319
* at Builder->__call('insertGetId', array(array('updated_at' => '2017-02-24 11:26:44', 'created_at' => '2017-02-24 11:26:44'), 'id')) in Model.php line 674
* at Model->insertAndSetId(object(Builder), array('updated_at' => '2017-02-24 11:26:44', 'created_at' => '2017-02-24 11:26:44')) in Model.php line 639
* at Model->performInsert(object(Builder)) in Model.php line 508
* at Model->save() in Builder.php line 817
* at Builder->create(array('name' => 'hpb', 'display_name' => 'Harry Potter Brasil', 'description' => 'Um hub *inteligente* para quem gosta de [harry potter](http://google.com). Um salve pra galera!', 'description_html' => '<p>Um hub <em>inteligente</em> para quem gosta de <a href="http://google.com">harry potter</a>.</p><p>Um salve pra galera!</p>', 'visible' => '1', 'nsfw' => '1', 'dice' => '0')) in Model.php line 1316
* at Model->__call('create', array(array('name' => 'hpb', 'display_name' => 'Harry Potter Brasil', 'description' => 'Um hub *inteligente* para quem gosta de [harry potter](http://google.com). Um salve pra galera!', 'description_html' => '<p>Um hub <em>inteligente</em> para quem gosta de <a href="http://google.com">harry potter</a>.</p><p>Um salve pra galera!</p>', 'visible' => '1', 'nsfw' => '1', 'dice' => '0'))) in Model.php line 1328
* at Model::__callStatic('create', array(array('name' => 'hpb', 'display_name' => 'Harry Potter Brasil', 'description' => 'Um hub *inteligente* para quem gosta de [harry potter](http://google.com). Um salve pra galera!', 'description_html' => '<p>Um hub <em>inteligente</em> para quem gosta de <a href="http://google.com">harry potter</a>.</p><p>Um salve pra galera!</p>', 'visible' => '1', 'nsfw' => '1', 'dice' => '0'))) in HubController.php line 82
* at HubController->createHub(array('_token' => 'hYCUpZ17qNkk6O124mKfQiP51xm1DMjUMGJ6ZhTb', 'display_name' => 'Harry Potter Brasil', 'name' => 'hpb', 'description' => 'Um hub *inteligente* para quem gosta de [harry potter](http://google.com). Um salve pra galera!', 'visible' => '1', 'nsfw' => '1', 'dice' => '0')) in HubController.php line 30
* at HubController->store(object(Request))
* at call_user_func_array(array(object(HubController), 'store'), array(object(Request))) in Controller.php line 55
* at Controller->callAction('store', array(object(Request))) in ControllerDispatcher.php line 44
* at ControllerDispatcher->dispatch(object(Route), object(HubController), 'store') in Route.php line 203
* at Route->runController() in Route.php line 160
* at Route->run() in Router.php line 559
* at Router->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 30
* at Pipeline->Illuminate\Routing\{closure}(object(Request)) in SubstituteBindings.php line 41
* at SubstituteBindings->handle(object(Request), object(Closure)) in Pipeline.php line 148
* at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
* at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Authenticate.php line 43
* at Authenticate->handle(object(Request), object(Closure)) in Pipeline.php line 148
* at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
* at Pipeline->Illuminate\Routing\{closure}(object(Request)) in VerifyCsrfToken.php line 65
* at VerifyCsrfToken->handle(object(Request), object(Closure)) in Pipeline.php line 148
* at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
* at Pipeline->Illuminate\Routing\{closure}(object(Request)) in ShareErrorsFromSession.php line 49
* at ShareErrorsFromSession->handle(object(Request), object(Closure)) in Pipeline.php line 148
* at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
* at Pipeline->Illuminate\Routing\{closure}(object(Request)) in StartSession.php line 64
* at StartSession->handle(object(Request), object(Closure)) in Pipeline.php line 148
* at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
* at Pipeline->Illuminate\Routing\{closure}(object(Request)) in AddQueuedCookiesToResponse.php line 37
* at AddQueuedCookiesToResponse->handle(object(Request), object(Closure)) in Pipeline.php line 148
* at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
* at Pipeline->Illuminate\Routing\{closure}(object(Request)) in EncryptCookies.php line 59
* at EncryptCookies->handle(object(Request), object(Closure)) in Pipeline.php line 148
* at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
* at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 102
* at Pipeline->then(object(Closure)) in Router.php line 561
* at Router->runRouteWithinStack(object(Route), object(Request)) in Router.php line 520
* at Router->dispatchToRoute(object(Request)) in Router.php line 498
* at Router->dispatch(object(Request)) in Kernel.php line 174
* at Kernel->Illuminate\Foundation\Http\{closure}(object(Request)) in Pipeline.php line 30
* at Pipeline->Illuminate\Routing\{closure}(object(Request)) in TransformsRequest.php line 30
* at TransformsRequest->handle(object(Request), object(Closure)) in Pipeline.php line 148
* at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
* at Pipeline->Illuminate\Routing\{closure}(object(Request)) in TransformsRequest.php line 30
* at TransformsRequest->handle(object(Request), object(Closure)) in Pipeline.php line 148
* at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
* at Pipeline->Illuminate\Routing\{closure}(object(Request)) in ValidatePostSize.php line 27
* at ValidatePostSize->handle(object(Request), object(Closure)) in Pipeline.php line 148
* at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
* at Pipeline->Illuminate\Routing\{closure}(object(Request)) in CheckForMaintenanceMode.php line 46
* at CheckForMaintenanceMode->handle(object(Request), object(Closure)) in Pipeline.php line 148
* at Pipeline->Illuminate\Pipeline\{closure}(object(Request)) in Pipeline.php line 53
* at Pipeline->Illuminate\Routing\{closure}(object(Request)) in Pipeline.php line 102
* at Pipeline->then(object(Closure)) in Kernel.php line 149
* at Kernel->sendRequestThroughRouter(object(Request)) in Kernel.php line 116
* at Kernel->handle(object(Request)) in index.php line 53
* at require('/Users/andre/Sites/deepnerd/public/index.php') in server.php line 106
Aparently, it's not sending the $request info to the query builder, and the query builder is simply trying to make a query with just the timestamps, which fails because the 'name' field is not nullable. What I don't understand is why the query builder isn't getting the $request info.
Thanks for any help!
Please or to participate in this conversation.