Questions tagged «eloquent»

Laravel随附的Eloquent ORM为使用您的数据库提供了一个漂亮,简单的ActiveRecord实现。每个数据库表都有一个对应的“模型”,用于与该表进行交互。模型使您可以查询表中的数据,以及将新记录插入表中。

4
Laravel保存/更新多对多关系
谁能帮助我保存多对多关系?我有任务,用户可以有许多任务,任务可以有许多用户(很多),我要实现的是在更新表单中admin可以将多个用户分配给特定任务。这是通过html多重选择输入来完成的 name="taskParticipants[]" 这里要注意的是,通过相同的表单(输入),您可以添加/删除用户,这就是为什么我必须使用sync()的原因。也许我应该从头开始,但不知道从哪里开始... 这是我的用户模型: public function tasks() { return $this->belongsToMany('Task','user_tasks'); } 任务模型 public function taskParticipants() { return $this->belongsToMany('User','user_tasks'); } TaskController public function update($task_id) { if (Input::has('taskParticipants')) { foreach(Input::get('taskParticipants') as $worker) { $task2 = $task->taskParticipants->toArray(); $task2 = array_add($task2,$task_id,$worker); $task->taskParticipants()->sync(array($task2)); } } } 这是表 任务id | title | deadline的结构 user_tasks id|task_id|user_id

6
如何合并两个雄辩的收藏?
我有一个问题表和一个标签表。我想从给定问题的标签中获取所有问题。因此,例如,我可能在给定问题上附加了“旅行”,“火车”和“文化”标签。我希望能够获取这三个标签的所有问题。看来棘手的是,问题和标签之间的关系是在Eloquent中定义为多对多(belongsToMany)的。 我考虑过尝试合并以下问题集合: foreach ($question->tags as $tag) { if (!isset($related)) { $related = $tag->questions; } else { $related->merge($tag->questions); } } 它似乎不起作用。似乎没有合并任何东西。我是否尝试正确?另外,也许有一种更好的方法可以在Eloquent中以多对多关系获取一行行吗?

5
雄辩地只获得一列作为数组
如何使用雄辩的方法在Laravel 5.2中仅将一列作为一维数组? 我努力了: $array = Word_relation::select('word_two')->where('word_one', $word_id)->get()->toArray(); 但这给它作为2维数组,如: array(2) { [0]=> array(1) { ["word_one"]=> int(2) } [1]=> array(1) { ["word_one"]=> int(3) } } 但我想得到它为: array(2) { [0]=>2 [1]=>3 }


8
雄辩的ORM laravel 5获取ID数组
我使用的是Eloquent ORM laravel 5.1,我想返回一个ID数组,其值大于0,我的模型称为test。 我努力了 : $test=test::select('id')->where('id' ,'>' ,0)->get()->toarray(); 它返回: Array ( [0] => Array ( [id] => 1 ) [1] => Array ( [id] => 2 ) ) 但我希望结果是简单的数组,如: Array ( 1,2 )

9
为什么在Eloquent模型中调用方法时出现“不应静态调用非静态方法”的问题?
我试图在控制器中加载模型并尝试以下操作: return Post::getAll(); 得到了错误 Non-static method Post::getAll() should not be called statically, assuming $this from incompatible context 模型中的函数如下所示: public function getAll() { return $posts = $this->all()->take(2)->get(); } 在控制器中加载模型然后返回其内容的正确方法是什么?
81 php  laravel  eloquent 

5
Laravel 5.2-使用字符串作为口才表的自定义主键变为0
我正在尝试使用电子邮件作为表的主键,所以雄辩的代码是- <?php namespace App; use Illuminate\Database\Eloquent\Model; class UserVerification extends Model { protected $table = 'user_verification'; protected $fillable = [ 'email', 'verification_token' ]; //$timestamps = false; protected $primaryKey = 'verification_token'; } 我的数据库就是这样的 但是如果我这样做- UserVerification::where('verification_token', $token)->first(); 我得到这个- { "email": "sdfsdf@sdfsdf.sdf", "verification_token": 0, "created_at": "2016-01-03 22:27:44", "updated_at": "2016-01-03 22:27:44" } 因此,验证令牌/主键变为0。 谁能帮忙吗?

9
Laravel雄辩的限制和偏移
这是我的 $art = Article::where('id',$article)->firstOrFail(); $products = $art->products; 我只是想拿一个极限“产品”这是错误的方式 $products = $art->products->offset($offset*$limit)->take($limit)->get(); 请帮帮我! 谢谢!

6
Laravel在关系对象上的位置
我正在使用Laravel 5.0开发Web API,但是不确定我要构建的特定查询。 我的课程如下: class Event extends Model { protected $table = 'events'; public $timestamps = false; public function participants() { return $this->hasMany('App\Participant', 'IDEvent', 'ID'); } public function owner() { return $this->hasOne('App\User', 'ID', 'IDOwner'); } } 和 class Participant extends Model { protected $table = 'participants'; public $timestamps = false; …

18
具有属性唯一验证规则的Laravel更新模型
我有一个laravelUser模型,该模型对username和具有唯一的验证规则email。在我的存储库中,当我更新模型时,我会重新验证字段,以免所需的规则验证有问题: public function update($id, $data) { $user = $this->findById($id); $user->fill($data); $this->validate($user->toArray()); $user->save(); return $user; } 测试失败 ValidationException: {"username":["The username has already been taken."],"email":["The email has already been taken."]} 有没有办法优雅地解决这个问题?

6
Laravel,sync()-如何同步数组并传递其他数据透视字段?
Laravel官方文档具有以下sync()功能: $user->roles()->sync( array( 1, 2, 3 ) ); 您还可以将其他数据透视表值与给定的ID相关联: $user->roles()->sync( array( 1 => array( 'expires' => true ) ) ); 在后一个示例中,仅添加了一个枢轴行。我不明白的是,如果要同步的行多,如何关联其他数据透视表记录? 提前致谢。
77 php  laravel  pivot  eloquent  sync 

3
Laravel Eloquent,其中field为X或null
我有一个这样的表: table - field1: tinyint - field2: varchar (nullable) - datefield: timestamp (nullable) 现在,我想获取field1为1,field2为null且datefield小于X或null的所有条目。我已经尝试过这样的事情: $query = Model::where('field1', 1) ->whereNull('field2') ->where('datefield', '<', $date) ->orWhereNull('datefield'); 但这没用。我总是得到datefield为null的每个条目。其他字段是什么都没有关系。我还尝试将其拆分为2个查询:首先获取datefield小于X或null的每一行,然后(基于它)获取field1为1且field2为null的每个字段。 结果是一样的。任何想法如何做到这一点?
77 php  laravel  eloquent 

4
首先还是创建
我知道使用: User::firstOrCreate(array('name' => $input['name'], 'email' => $input['email'], 'password' => $input['password'])); 首先检查用户是否存在,如果没有创建,那么如何检查?它会检查提供的所有参数还是有办法指定特定的参数,例如,我可以检查电子邮件地址是否存在,而不是名称吗?因为两个用户可能具有相同的名称,但他们的电子邮件地址必须是独特。

4
Laravel 5雄辩的条款和/或条款
我尝试从具有多个where和/或子句的表中获取结果。 我的SQL语句是: SELECT * FROM tbl WHERE m__Id = 46 AND t_Id = 2 AND (Cab = 2 OR Cab = 4) 我如何通过Laravel Eloquent获得此信息? 我在Laravel中的代码是: $BType = CabRes::where('m_Id', '=', '46') ->where('t_Id', '=', '2') ->where('Cab', '2') ->orWhere('Cab', '=', '4') ->get();
76 sql  laravel  eloquent 

1
在数据透视表中附加数据时时间戳不更新
我正在使用以下attach语句在数据透视表中创建一行。 $music = Music::find(1); $music->users()->attach(1); 这将在数​​据透视表中插入一行,但是,它没有更新时间戳。时间戳记仍为注册时间00:00:00 有什么方法可以更新数据透视表中的时间戳。? 提前致谢,

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.