没有默认值错误! Laravel

时间:2018-08-16 06:49:20

标签: mysql laravel

我已经提出了所有其他问题,并做了他们说的话。我仍然无法摆脱default_value错误。我添加了多个连接。所以我有3个数据库:Users,companya,companyb。 公司A和公司B具有相同的结构。 股票具有tag_no作为主键,我也已在模型中指定了它。 在股票模型内部,我创建了一个构造函数,以根据用户公司动态切换模型。 即使所有这些,我仍然收到此错误。 我尝试在 database.php 内部将strict更改为false,但是..所有条目的值都显示为0。所以我停止尝试了。

那么我该怎么做才能解决这个问题。请帮忙!

以下是我的架构:

对于用户:

Schema::connection('mysql')->create('users', function (Blueprint $table) {
                $table->increments('id');
                $table->string('company')->default('companya');
                $table->string('name');
                $table->string('email')->unique();
                $table->string('password');                
                $table->string('user_type',50)->default('user');                
                $table->rememberToken();
                $table->timestamps();
            });

对于公司A和公司B:

Schema::connection('companya')->create('stocks', function (Blueprint $table) {

            $table->string('tag_no')->index();
            $table->string('stock_type');          
            $table->timestamps();            
        });

这是我的股票模型:

class Stock extends Model
{
    protected $primaryKey = 'tag_no';
    public $incrementing = false;
    protected $fillable = [        
        'tag_no',
        'stock_type',             
    ];

    public function __construct() {
        if ( Auth::check() ) {
        $this->connection = Auth::user()->company;
        }
    }
}

商店功能代码:

public function store(Request $request)
    {
        if(Auth::check()){            
            if (Stock::where('tag_no','=',$request->input('tag_no'))->exists()) { 
                return back()->withInput()->with('errors', 'Tag number already used!');                
                }      

                    $stock = Stock::create([
                        'tag_no' => $request->input('tag_no'),
                        'stock_type' => $request->input('stock_type'),

                    ]);
                }         

                if($stock){                  
                    return redirect()->route('stocks.index', ['stocks'=> $stock->tag_no])
                    ->with('success' , 'Stock created successfully');

                }               

        return back()->withInput()->with('errors', 'Error creating new Stock');        
    }

1 个答案:

答案 0 :(得分:0)

只需更改创建以插入和删除股票的参数即可。

public function store(Request $request)
    {
        if(Auth::check()){            
            if (Stock::where('tag_no','=',$request->input('tag_no'))->exists()) { 
                return back()->withInput()->with('errors', 'Tag number already used!');                
                }      

                    $stock = Stock::insert([
                        'tag_no' => $request->input('tag_no'),
                        'stock_type' => $request->input('stock_type'),

                    ]);
                }         

                if($stock){                  
                    return redirect()->route('stocks.index')
                    ->with('success' , 'Stock created successfully');

                }               

        return back()->withInput()->with('errors', 'Error creating new Stock');        
    }