Laravel:函数名称必须是字符串

时间:2018-09-05 12:56:18

标签: laravel

我目前正在研究一个项目。一切正常,直到我尝试迁移一些我编辑过的表。我收到此错误:

  

[Symfony \ Component \ Debug \ Exception \ FatalThrowableError]
    函数名称必须是字符串

由于我没有直接向我显示错误在哪里,所以找不到它。在尝试迁移表之前,我做了最后的更改:

  • 迁移
  • Laravel colletive / html表单
  • 将方法存储在控制器中

据我所知,迁移和表单不应该是此错误的问题,所以这是我的控制器代码:

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');
}

如果该错误甚至不是控制器代码中的错误,可能在哪里。任何帮助表示赞赏。

2 个答案:

答案 0 :(得分:0)

Laravel中的相同问题可以解决

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

选中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]

解决方案 数据字段请求其他格式,但是您正在尝试保存对象。

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

检查是否使用表单提交方法访问请求。可能是POST or GET

答案 1 :(得分:0)

我发现这是因为一个非常愚蠢的错误,我将变量称为函数...

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

更改为

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

当我们做一些真正的愚蠢的事情时,通常会出现此错误消息! :)