我需要更新所有行的一个数据库,以便在某一领域的所有他们等于单个值.这是一个例子.
假设我的数据库表是这样的:
id | data | confirmed
1 | someData | 0
2 | someData | 1
3 | someData | 0
Run Code Online (Sandbox Code Playgroud)
我想执行一个查询,将每行的确认字段设置为1.
我可以这样做:
$rows = MyModel::where('confirmed', '=', '0')->get();
foreach($rows as $row) {
$row->confirmed = 0;
$row->save();
}
Run Code Online (Sandbox Code Playgroud)
但似乎会有更好的方法吗?单个查询只会说"将每行'确认'字段设置为1".
Laravel的Eloquent/Fluent中是否存在这样的查询?
在Eloquent ORM中是否有解决方案?
我有父母的角色:
Array ( [0] => 87, [1] => 65, ... )
Run Code Online (Sandbox Code Playgroud)
我想要选择表PRODUCTS其中parent_id列=数组中的任何id
我有一组对象.假设对象是标签:
$tags = Tag::all();
Run Code Online (Sandbox Code Playgroud)
我想为每个标签检索某个属性,比如它的名称.我当然能做到
foreach ($tags as $tag) {
$tag_names[] = $tag->name;
}
Run Code Online (Sandbox Code Playgroud)
但这个问题是否有更为荒谬的解决方案?
有点像$tags->name?
我的laravel安装昨天工作正常,但今天我收到以下错误:
Forbidden
You don't have permission to access / on this server.
Additionally, a 403 Forbidden error was encountered while trying to use an ErrorDocument to handle the request.
Run Code Online (Sandbox Code Playgroud)
有谁知道我哪里出错了?
我正在使用Laravel 4在我的数据库中导入一堆csv条目.
我不能指出一个必须是唯一的列,它是5列的组合,使其独特.但是:如何在Laravel中定义这个?
选项1:模式构建器
您可以使用$ table-> unique('email')方法,但这似乎只允许一列,而不是列的组合.
选项2:验证
不太可取,但我可以在插入之前验证模型.但是,再次使用"unique:[table]"验证规则,当其中一个列值不唯一时,它将返回错误,而不是它们的组合.
谁能告诉我应该怎么做呢?
我确定我错过了一些东西,但我可以用正确的方向推动:-)
谢谢,
迪特
我怎样才能在Laravel 4中自动加载Guzzle?
我尝试创建一个新的GuzzleHttp/Client时遇到以下错误:
Symfony \ Component \ Debug \ Exception \ FatalErrorException
Class 'GuzzleHttp\Client' not found
Run Code Online (Sandbox Code Playgroud)
我在composer.json自动加载部分中进行了以下设置:
autoload: {
"psr-0": {
"Guzzle\\": "src/"
}
}
Run Code Online (Sandbox Code Playgroud) 有谁知道是否可以做以下事情:
假设我们有一个名为User的模型和一个名为BestFriend的模型.用户与最好的朋友之间的关系是1:1.
我希望这些案例能够做到这样的事情,同时改变我的城市和我朋友的城市.
$me = User::find(1);
$me->update(array(
'city' => 'amsterdam',
'bestfriend.city' => 'amsterdam'
));
Run Code Online (Sandbox Code Playgroud)
所以基本上我想知道Eloquent是否足够聪明,能够理解基于数组键'bestfriend.city'的关系.
在此先感谢您的帮助!
更新:
在Laravel论坛上找到解决方案,但我也在这里发布,如果其他人正在寻找相同的东西:)
在您添加的模型中
// In your model...
public function setBestFriendArrayAttribute($values)
{
$this->bestfriend->update($values);
}
Run Code Online (Sandbox Code Playgroud)
然后你就可以这样称呼它
$me->update(array(
'city' => 'amsterdam',
'BestFriendArray' => array(
'city' => 'amsterdam'
)
));
Run Code Online (Sandbox Code Playgroud)
奇迹般有效!
使用Laravel 4的Form类,我们可以使用创建列表
{{ @Form::select('colors', Colors::all()), $color }}
Run Code Online (Sandbox Code Playgroud)
问题:我们如何disabled使用Blade 添加属性而无需将干净的Blade语法重写为通常的丑陋形式?
我正在尝试制作以下教程:https://medium.com/on-coding/e8d93c9ce0e2
说到运行:
php artisan migrate
Run Code Online (Sandbox Code Playgroud)
我收到以下错误:
[Exception]
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'laravel.user' doesn't
exist (SQL: alter table `user` add `id` int unsigned not null auto_increment prim
ary key, add `username` varchar(255) null, add `password` varchar(255) null, add
`email` varchar(255) null, add `created_at` datetime null, add `updated_at` datet
ime null) (Bindings: array (
))
Run Code Online (Sandbox Code Playgroud)
数据库连接正常,迁移表已成功创建.正如您在错误消息中看到的那样,数据库名称已更改.
对我来说很奇怪的是,它试图改变表 - 它不存在 - 而不是创建它.
这是我的其他文件,如UserModel,Seeder,Migtation和DB Config.
CreateUserTable:
<?php
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Database\Migrations\Migration;
class CreateUserTable extends Migration { …Run Code Online (Sandbox Code Playgroud)