草庐IT

eloquent

全部标签

php - Laravel 模型上的自定义查找方法应该是静态的吗?

在下面的Laravel5模型中,findByIdAndCourseOrFail方法应该是静态的吗?classSectionextendsModel{//shouldthismethodbestatic?publicfunctionfindByIdAndCourseOrFail($id,$courseId){$result=$this->where('id',$id)->where('course_id',$courseId)->first();if(!is_null($result)){return$result;}throw(newModelNotFoundException())-

php - Laravel 使用具有模式的表创建模型类

我有一个非常简单的问题,不知怎的,这听起来很愚蠢,但请原谅。我正在开发一个项目,在该项目中,我将sqlserver与现有数据库一起使用,其中表名具有架构,例如dob.Tablename。我的问题是,如果我想为Tablename创建Eloquent模型,我将如何命名我的类(class)? 最佳答案 创建新模型并添加table属性:protected$table='existing_table_name'; 关于php-Laravel使用具有模式的表创建模型类,我们在StackOverflo

php - Laravel 5 Eloquent 关系 : can't modify/overwrite relationship table property

我正在使用Laravel5的belongsToMany方法使用中间数据透视表定义相关表。我的应用程序使用Eloquent模型Tour和TourCategory。在Tour模型中,我有:namespaceApp;useIlluminate\Database\Eloquent\Model;classTourextendsModel{publicfunctioncats(){return$this->belongsToMany('App\TourCategory','tour_cat_assignments','tour_id','cat_id');}}在我的Controller中,我使用L

php - 在 Laravel Eloquent 模型中创建动态命名的修改器

我有一个日期字段列表,所有这些字段在它们的修改器中都具有相同的逻辑。我想将此功能提取到特征中,以便将来我只需要在模型中创建一个日期字段数组并使用该特征。像这样:foreach($datesas$date){$dateCamelCase=$this->dashesToUpperCase($date);$setDateFunctionName='set'.$dateCamelCase.'Attribute';$this->{$setDateFunctionName}=function()use($date){$this->attributes[$date]=date('Y-m-d',str

php - 在子模型中使用多态关系会导致无限循环?

这个问题已经被问过here但没有收到任何答复。现在我面临同样的问题,但在laravel5.4中。我有一个模型Book、一个模型ReadingSession和一个模型Comment。一本书有很多阅读环节和很多评论,但阅读环节也可以有评论。所以我的关系定义如下:书.phpprotected$with=['author','readingSessions','userRating','ratings','comments'];publicfunctionusers(){return$this->belongsToMany(User::class,'user_book');}publicfun

php - 如何使用自定义管理表重定向到管理页面

我使用自己的(原始)方法来拥有管理员用户,而不是laravelmultiauth。我在数据库中只有一个名为PAdmin的额外表,在这个表中我有管理员用户的ID。当我登录到应用程序时,我想将管理员用户重定向到另一个页面而不是home页面。出于这个原因,我去了Http\Middleware\RedirectIfAuthenticated并更改了代码:publicfunctionhandle($request,Closure$next,$guard=null){if(Auth::guard($guard)->check()){returnredirect('/home');}return$n

php - 在 laravel 的嵌套预加载中加载特定关系

我有以下相关表格:tableA-id-valuetableB-id-tableA_id-valuetableC-id-tableB_id-valuetableD-id-tableC_id-value我通常使用嵌套的预加载从tableD中获取tableaA的对象,例如:$table_d=TableD::with('TableC.TableB.TableA')->find($id);然后我得到一个这样的对象:{"id":1,"value":"value","tableC_id":1,"tablec":{"id":1,"value":"value","tableB_id":1,"tableb

php - 将 Eloquent 构建器转换为查询构建器

好像大家都在问怎么把Query\Builder转成Eloquent\Builder。我需要相反的东西——我有一个定义了一些范围的模型,我从中创建了一个查询。它返回的结果是我的模型的一个实例。我希望它是一个普通对象。获取模型并转换为stdClass对我来说似乎不合适。这可能吗? 最佳答案 是的。您可以使用Eloquent查询构建器构建查询,但随后您可以使用基本查询构建器实际执行查询,它将返回stdClass对象。下面是一个例子。显然,您可以将所有这些内容链接成一行,但我将其分成多行来解释发生了什么。假设您的User模型上有一个acti

php - 如何使用 Laravel Eloquent 将多条记录插入数据库

我正在开发一个网络应用程序,出现了用户可以一次插入多条记录的场景。我在路由result/create创建了一个表单,用户可以在前端添加多行,现在当用户单击提交时,我希望将数组形式的所有记录/行数据插入数据库。现在,当我单击提交时,出现此错误Undefinedindex:id。PS:我正在使用Laravel5.2和资源Controller。添加记录View:@extends('layouts.app')@section('content')$(function(){$('.add').click(function(){varn=($('.resultbodytr').length-0)+

php - Laravel Eloquent 序列化

我有一个表,其中PrimaryKey如下所示:id列中的123456-789。当我使用$allArray=$this->all()->toArray()请求我的表中的所有条目时,我遇到了问题。所有数据都按预期到达,但id现在看起来像这样:123456789。id列在数据库中设置为varchar(24)utf8_general_ci。当我print_r()我的结果来自$all=$this->all()(没有->toArray())我可以看到当前提取的id123456-789。然后我尝试再次获取id,如echo$all[1]->id它是123456789。如有任何帮助,我们将不胜感激。谢谢