Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

joshblevins's avatar

Trying to get property 'first_name' of non-object

I am working with a page that does not have a logged in user... The page is for a time clock punch... The employee types in their id and then submits... they are then taken to a page to view their current schedule and clock in for their shift.

I am getting an error when I try echoing the employees information that the variable is not set... I have tested the query and it is working as intended....

Controller

/**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function punch(Request $request)
    {
        $employee = DB::select('SELECT * FROM `employees` WHERE (RIGHT(ssn,6)) = "'.$request->clock_id.'" limit 1');
        
        return view('timeclock.punch', compact('employee'));
    }

Form Page

@extends('layouts.auth')


@section('page-title', trans('app.login'))


@section('content')
    <div class="col-md-8 col-lg-6 col-xl-5 mx-auto my-10p">
        <div class="row-fluid">
            <img src="{{ url('public/assets/img/peasi.png') }}" alt="{{ settings('app_name') }}" height="50">
        </div>
        <div class="row-fluid">
    <form role="search" method="GET" action="{{ route('timeclock.punch') }}">
        <div class="mb-form">
        <input type="text" class="form-control" id="demo" name="clock_id"></input>
        <label for="demo">Employee Clock In Id</label>
        </div>
        
        <button class="btn btn-outline-info btn-rounded btn-block my-4 waves-effect z-depth-0" type="submit">Clock In / Out</button>
    </form>
    
    </div>
    </div>
    
@stop


 
@section('scripts')

   
    <script type="text/javascript">
$(function () {

    $('#demo').mobiscroll().numpad({
        theme: 'windows',
        template: 'dddddd',
        allowLeadingZero: true,
        placeholder: '-',
        mask: '*',
        validate: function (event, inst) {
            return {
                invalid: event.values.length != 6
            };
        }
    });

});
    </script>
@stop

Employee Data Page

@extends('layouts.auth')


@section('page-title', trans('app.login'))


@section('content')

{{$employee->first_name}}


@stop


 
@section('scripts')

   
@stop

stack trace

ErrorException thrown with message "Trying to get property 'first_name' of non-object (View: /home/emscomplete/public_html/resources/views/timeclock/punch.blade.php)"

Stacktrace:
#64 ErrorException in /home/emscomplete/public_html/storage/framework/views/9373c935447080823ef5ce4a7540907d65ee469c.php:6
#63 ErrorException in /home/emscomplete/public_html/storage/framework/views/9373c935447080823ef5ce4a7540907d65ee469c.php:6
#62 Illuminate\Foundation\Bootstrap\HandleExceptions:handleError in /home/emscomplete/public_html/storage/framework/views/9373c935447080823ef5ce4a7540907d65ee469c.php:6
#61 include in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/View/Engines/PhpEngine.php:43
#60 Illuminate\View\Engines\PhpEngine:evaluatePath in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/View/Engines/CompilerEngine.php:59
#59 Illuminate\View\Engines\CompilerEngine:get in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/View/View.php:142
#58 Illuminate\View\View:getContents in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/View/View.php:125
#57 Illuminate\View\View:renderContents in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/View/View.php:90
#56 Illuminate\View\View:render in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Http/Response.php:42
#55 Illuminate\Http\Response:setContent in /home/emscomplete/public_html/vendor/symfony/http-foundation/Response.php:197
#54 Symfony\Component\HttpFoundation\Response:__construct in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Routing/Router.php:727
#53 Illuminate\Routing\Router:toResponse in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Routing/Router.php:699
#52 Illuminate\Routing\Router:prepareResponse in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Routing/Router.php:659
#51 Illuminate\Routing\Router:Illuminate\Routing\{closure} in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:30
#50 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php:41
#49 Illuminate\Routing\Middleware\SubstituteBindings:handle in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
#48 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#47 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php:67
#46 Illuminate\Foundation\Http\Middleware\VerifyCsrfToken:handle in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
#45 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#44 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php:49
#43 Illuminate\View\Middleware\ShareErrorsFromSession:handle in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
#42 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#41 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php:63
#40 Illuminate\Session\Middleware\StartSession:handle in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
#39 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#38 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php:37
#37 Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse:handle in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
#36 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#35 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php:59
#34 Illuminate\Cookie\Middleware\EncryptCookies:handle in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
#33 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#32 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:102
#31 Illuminate\Pipeline\Pipeline:then in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Routing/Router.php:661
#30 Illuminate\Routing\Router:runRouteWithinStack in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Routing/Router.php:636
#29 Illuminate\Routing\Router:runRoute in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Routing/Router.php:602
#28 Illuminate\Routing\Router:dispatchToRoute in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Routing/Router.php:591
#27 Illuminate\Routing\Router:dispatch in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:176
#26 Illuminate\Foundation\Http\Kernel:Illuminate\Foundation\Http\{closure} in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:30
#25 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/emscomplete/public_html/vendor/proengsoft/laravel-jsvalidation/src/RemoteValidationMiddleware.php:53
#24 Proengsoft\JsValidation\RemoteValidationMiddleware:handle in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
#23 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#22 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/emscomplete/public_html/vendor/barryvdh/laravel-debugbar/src/Middleware/InjectDebugbar.php:65
#21 Barryvdh\Debugbar\Middleware\InjectDebugbar:handle in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
#20 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#19 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/emscomplete/public_html/vendor/fideloper/proxy/src/TrustProxies.php:57
#18 Fideloper\Proxy\TrustProxies:handle in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
#17 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#16 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:30
#15 Illuminate\Foundation\Http\Middleware\TransformsRequest:handle in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
#14 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#13 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php:30
#12 Illuminate\Foundation\Http\Middleware\TransformsRequest:handle in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
#11 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#10 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/CheckForMaintenanceMode.php:51
#9 Illuminate\Foundation\Http\Middleware\CheckForMaintenanceMode:handle in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
#8 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#7 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/emscomplete/public_html/app/Http/Middleware/VerifyInstallation.php:29
#6 Vanguard\Http\Middleware\VerifyInstallation:handle in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:149
#5 Illuminate\Pipeline\Pipeline:Illuminate\Pipeline\{closure} in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Routing/Pipeline.php:53
#4 Illuminate\Routing\Pipeline:Illuminate\Routing\{closure} in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php:102
#3 Illuminate\Pipeline\Pipeline:then in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:151
#2 Illuminate\Foundation\Http\Kernel:sendRequestThroughRouter in /home/emscomplete/public_html/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php:116
#1 Illuminate\Foundation\Http\Kernel:handle in /home/emscomplete/public_html/public/index.php:55
#0 require_once in /home/emscomplete/public_html/index.php:21

0 likes
9 replies
newbie360's avatar

Employee Data Page = punch.blade.php ?

what about $employee is null ?

$employee = DB::select('SELECT * FROM `employees` WHERE (RIGHT(ssn,6)) = "'.$request->clock_id.'" limit 1');
tykus's avatar
tykus
Best Answer
Level 104

You are getting an array from the query, not an individual object. Why not use Eloquent if you need an object?

Employee::whereRaw("RIGHT(ssn,6) = {$request->clock_id}")->firstOrFail();
joshblevins's avatar

@tykus that was my thought however when I did some research everything I read was saying I wouldn’t be able to use (right(ssn,6) with elequent

tykus's avatar

What research? whereRaw is SQL, so no reason you could not use it.

joshblevins's avatar

@tykus I’m not at the computer at the moment when I get back I’ll look.... I do remember it being on stack exchange... I found 2 or three articles stating that it had to be a raw query but I did not think of whereraw

tykus's avatar

Everything boils down to SQL in the end... you're just going direct with whereRaw

burlresearch's avatar

I think this could be that you are just trying to access data as an object, when it's only an array. There are a few things you could do, like using Eloquent, but just try

{{ $employee['first_name'] }}
1 like

Please or to participate in this conversation.