zlatan
zlatan

Reputation: 3951

Laravel: Function name must be a string

I'm currently working on a project. It was all working just fine until i tried to migrate some tables that I edited. I got this error:

[Symfony\Component\Debug\Exception\FatalThrowableError]
Function name must be a string

Since I doesn't directly show me where the error is, I couldn't find it. Last things I changed before I tried to migrate tables:

As I know, migrations and forms shouldn't be a problem with this error, so here's my controller code:

public function store(Request $request)
{
    $user = Auth::user();
    $input = $request->all();

    if ($file = $request->file('photo_id')){
        $name = time().$file->getClientOriginalName();
        $file->move('images', $name);
        $photo = Photo::create(['file'=>$name]);
        $input['photo_id'] = $photo->id;
    }

    $user->posts()->create($input);
    return redirect('/userPanel');
}

If the error isn't even in a controller code, where could it be. Any help appreciated.

Upvotes: 2

Views: 5912

Answers (2)

Josep Bigorra
Josep Bigorra

Reputation: 833

I have found out it was because of a very silly mistake, i was calling a variable as a function...

$ownedMacs = intval($data()['owned_mac']);

Changed to

$ownedMacs = intval($data['owned_mac']);

This error message usually appears when we are doing something real stupid! :)

Upvotes: 2

Thilina Dharmasena
Thilina Dharmasena

Reputation: 2341

Same issue in Laravel can solve

    Symfony \ Component \ Debug \ Exception \ FatalThrowableError (E_ERROR)
    Function name must be a string

When you checked on storage/logs/laravel.log

local.ERROR: Function name must be a string {"exception":"[object] (Symfony\\Component\\Debug\\Exception\\FatalThrowableError(code: 0): Function name must be a string at E:\\Project\\workspace\\turttyKidsProject\\app\\Http\\Controllers\\SiteContactController.php:52)

[stacktrace]

Solution Data field requesting another format but you are trying to save an object.

            $objectSave= new ObjectClass;
            $objectSave->feild_db = $request->post('request_name');

Check whether you access request with your form submit method. it may be POST or GET

Upvotes: 0

Related Questions