douren5490 2018-02-28 14:11
浏览 74

Lumen - FatalThrowableError在null上调用成员函数file()

I am trying to insert values into my file table and I am getting a error. FatalThrowableError Call to a member function file() on null.

Inset.php Model

namespace App;

use Illuminate\Database\Eloquent\Model;

class Inset extends Model
{
    /**
     * The table associated with the model.
     *
     * @var string
     */
    protected $table = 'insets';

    public function file()
    {
        return $this->hasMany('App\File');
    }
}

File.php Model

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class File extends Model
{
    /**
     * The table associated with the model.
     *
     * @var string
     */
    protected $table = 'files';
    protected $fillable = ['file_name','file_content', 'insets_post'];

    public $timestamps = false;

    public function inpost()
    {
        return $this->belongsTo('App\Inpost');
    }
}

FilesController.php Controller

<?php
/**
 * Created by PhpStorm.
 * User: Kacper
 * Date: 28.02.2018
 * Time: 14:00
 */

namespace App\Http\Controllers;

use App\File;
use App\Inset;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\Crypt;

class FilesController
{
    public function showAll(Request $request)
    {
        return File::all();
    }

    public function show($ID_inset)
    {
        return File::findOrFail($ID_inset);
    }

    public function insert(Request $request)
    {
        $inset = Inset::find($request->input('inset_id'));
        $file =$inset ->file()->create([
            'file_name' => $request->input('file_name'),
            'file_content' => Crypt::encrypt($request->input('file_content'))
        ]);
        $file->save();
    }
}

Error:

(1/1) FatalThrowableError Call to a member function file() on null

in FilesController.php (line 31) at FilesController->insert(object(Request)) at call_user_func_array(array(object(FilesController), 'insert'), array(object(Request))) in BoundMethod.php (line 29) at BoundMethod::Illuminate\Container{closure}() in BoundMethod.php (line 87) at BoundMethod::callBoundMethod(object(Application), array(object(FilesController), 'insert'), object(Closure)) in BoundMethod.php (line 31) at BoundMethod::call(object(Application), array(object(FilesController), 'insert'), array(), null) in Container.php (line 564) at Container->call(array(object(FilesController), 'insert'), array()) in RoutesRequests.php (line 373) at Application->callControllerCallable(array(object(FilesController), 'insert'), array()) in RoutesRequests.php (line 316) at Application->callControllerAction(array(true, array('uses' => 'App\Http\Controllers\FilesController@insert'), array())) in RoutesRequests.php (line 275) at Application->callActionOnArrayBasedRoute(array(true, array('uses' => 'App\Http\Controllers\FilesController@insert'), array())) in RoutesRequests.php (line 260) at Application->handleFoundRoute(array(true, array('uses' => 'App\Http\Controllers\FilesController@insert'), array())) in RoutesRequests.php (line 160) at Application->Laravel\Lumen\Concerns{closure}() in RoutesRequests.php (line 413) at Application->sendThroughPipeline(array(), object(Closure)) in RoutesRequests.php (line 166) at Application->dispatch(null) in RoutesRequests.php (line 107) at Application->run() in index.php (line 28)

  • 写回答

1条回答 默认 最新

  • dongmian8108 2018-02-28 14:18
    关注

    Your Code

    $inset = Inset::find($request->input('inset_id'));
    

    Is returning null that's why it is Throwing this error.

    if you want to avoid error you can do this like

    $inset = Inset::find($request->input('inset_id'));
    
     if($inset){
        $file =$inset ->file()->create([
            'file_name' => $request->input('file_name'),
            'file_content' => Crypt::encrypt($request->input('file_content'))
        ]);
        $file->save();
     }
    

    Hope this helps

    评论

报告相同问题?

悬赏问题

  • ¥15 Centos7 / PETGEM
  • ¥15 csmar数据进行spss描述性统计分析
  • ¥15 各位请问平行检验趋势图这样要怎么调整?说标准差差异太大了
  • ¥15 delphi webbrowser组件网页下拉菜单自动选择问题
  • ¥15 wpf界面一直接收PLC给过来的信号,导致UI界面操作起来会卡顿
  • ¥15 init i2c:2 freq:100000[MAIXPY]: find ov2640[MAIXPY]: find ov sensor是main文件哪里有问题吗
  • ¥15 运动想象脑电信号数据集.vhdr
  • ¥15 三因素重复测量数据R语句编写,不存在交互作用
  • ¥15 微信会员卡等级和折扣规则
  • ¥15 微信公众平台自制会员卡可以通过收款码收款码收款进行自动积分吗