我想做的是更新或插入表中的行。就我而言,更新看起来像这样:
\DB::table('inventories')->where('product_code',$product_code)->increment('stock_current_quantity',$quantity);
Run Code Online (Sandbox Code Playgroud)
我不想使用if else语句。我真正想要的是将增量集成到以下语句中,以便按上述语句进行更新。
\App\Inventory::updateOrCreate(['product_code' => $product_code], ['stock_current_quantity'=>$quantity]);
Run Code Online (Sandbox Code Playgroud)
提前致谢!
我刚刚将Laravel的数据库层Eloquent包含在我的CodeIgniter 3项目中.然而,我的问题是我无法使用Eloquent模型连接到多个数据库.
对于默认DB,这是我配置DB的方式:
$capsule = new Capsule;
$capsule->addConnection(array(
'driver' => 'mysql',
'host' => "localhost",
'database' => "employees_db",
'username' => "root",
'password' => "",
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
));
$capsule->setAsGlobal();
$capsule->bootEloquent();
Run Code Online (Sandbox Code Playgroud)
以上效果很好.但我有一个来自另一个数据库的员工表.我可以使用查询构建器来使用它,但是使用Eloquent模型会失败.
我试过这个:
$employees = new Capsule;
$employees->addConnection(array(
'driver' => 'mysql',
'host' => "host2",
'database' => "employees_db",
'username' => "user",
'password' => "pass",
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
),'employees');
$employees->setAsGlobal();
Run Code Online (Sandbox Code Playgroud)
尝试设置一个Eloquent模型并使用如下连接:
protected $connection = "employees";
Run Code Online (Sandbox Code Playgroud)
是否可以使用Laravel之外的Illuminate\Database Eloquent ORM连接到多个数据库?如果有,怎么样?
我按照这些步骤但仍未找到"Html"类.
加入 composer.json
"require": {
"laravelcollective/html": "5.2.*"
}
Run Code Online (Sandbox Code Playgroud)
一旦安装,添加这些行 config/app.php
'providers' => [
// ...
Collective\Html\HtmlServiceProvider::class,
// ...
],
'aliases' => [
// ...
'Form' => Collective\Html\FormFacade::class,
'Html' => Collective\Html\HtmlFacade::class,
// ...
],
Run Code Online (Sandbox Code Playgroud)
请参阅随附的屏幕截图.可能是什么原因,我也尝试了,composer dump-autoload
composer clear-cache
但它没有解决问题
更新
查看示例代码
{!!Html::style('assets/css/bootstrap.min.css')!!}
{!!Html::style('assets/css/custom.css')!!}
{!!Html::script('assets/js/jquery.min.js')!!}
{!!Html::script('assets/js/bootstrap.min.js')!!}
Run Code Online (Sandbox Code Playgroud) 在Laravel 5.x的早期版本中(我不确定它何时被更改)我能够create
在任何Eloquent Model类上调用静态方法将记录插入到数据库中.
例如:
EloquentUser::create([
'name' => self::ADMIN_NAME,
'email' => self::ADMIN_EMAIL,
'password' => bcrypt(self::ADMIN_PASSWORD),
]);
Run Code Online (Sandbox Code Playgroud)
那是public static function create
在Model.php(vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php
)中调用的.
public static function create(array $attributes = [])
{
$model = new static($attributes);
$model->save();
return $model;
}
Run Code Online (Sandbox Code Playgroud)
在Laravel 5.5中,我仍然可以调用,create
但Model.php完全重新排列,不包含此方法.更重要的是,在整个供应商中搜索/ Illuminate给了我这样的东西.请解释,它是如何工作的,它在幕后所谓的.
谢谢.
我想使用 Illuminate 数据库(https://github.com/illuminate/database)。不适用于 Laravel,仅在我的 php 文件中使用。我愿意
use Illuminate\Database\Capsule\Manager as Capsule;
$capsule = new Capsule;
$capsule->addConnection([
'driver' => 'mysql',
'host' => 'localhost',
'database' => 'database',
'username' => 'root',
'password' => 'password',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
]);
Run Code Online (Sandbox Code Playgroud)
但它似乎不起作用,并且不显示任何错误消息。我需要任何文件吗?照明目录与我的php文件在同一目录中。
编辑:
我现在可以使用查询了。像这样
$users = Capsule::table('users')->where('votes', '>', 100)->get();
Run Code Online (Sandbox Code Playgroud)
我不知道如何使用模型。
用户名
class User extends Illuminate\Database\Eloquent\Model {
}
Run Code Online (Sandbox Code Playgroud)
我的php文件
require 'vendor/autoload.php';
require 'User.php';
$users = User::where('status', '=', 1)->get();
Run Code Online (Sandbox Code Playgroud)
有错误
Fatal error: Call to a member function connection() on a non-object …
Run Code Online (Sandbox Code Playgroud) 我正在使用Slim和带有Illoquent模型等的Illuminate Database包构建API。已经使用Capsule实例化了数据库处理程序,如所示README
。但是,现在我想在不安装完整的Laravel套件的情况下在模型上使用验证功能,但是我无法完全理解该库的设计。
我将如何处理?看来为Laravel提供的文档非常期待您可以直接使用Laravel。
我从Laravel开始,我正在使用Illuminate/Html制作表格.
我想在第一个选项中添加禁用属性,但我找不到这样做的方法.
{!! Form::open(['url' => 'shelter/pets']) !!}
<div class="form-group">
{!! Form::label('pet_type','Type:') !!}
{!! Form::select('pet_type', ['Select Type','dog', 'cat'], 0, ['class' => 'form-control']) !!}
</div>
<div class="form-group">
{!! Form::submit('Add pet', null, ['class' => 'btn btn-primary form-control']) !!}
</div>
{!! Form::close() !!}
Run Code Online (Sandbox Code Playgroud) 启动了一个新的Laravel 5.2项目并实现了它附带的默认身份验证.我想修改它,以便注册表单有一个名字和姓氏的字段,而不仅仅是'name'.我在视图,验证和模型中添加了字段.当我测试时,我得到以下内容:
第71行位于以下代码块中,用于姓氏或"lname".
protected function create(array $data)
{
return User::create([
'fname' => $data['fname'],
'lname' => $data['lname '],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}
Run Code Online (Sandbox Code Playgroud)
当我dd
在数据数组之前添加一个return/create
像这样的数据:
protected function create(array $data)
{
dd($data);
return User::create([
'fname' => $data['fname'],
'lname' => $data['lname '],
'email' => $data['email'],
'password' => bcrypt($data['password']),
]);
}
Run Code Online (Sandbox Code Playgroud)
我们可以清楚地看到,lname
实际上,它存在于该数组中,不应该是未定义的索引.这是怎么回事?
laravel ×6
php ×6
eloquent ×2
laravel-5 ×2
blade ×1
forms ×1
laravel-5.1 ×1
laravel-5.2 ×1
validation ×1