GVKun编程网logo

[PHP] Laravel 获取模型/表的所有字段(laravel查询指定字段)

19

以上就是给各位分享[PHP]Laravel获取模型/表的所有字段,其中也会对laravel查询指定字段进行解释,同时本文还将给你拓展C#如何获取SQLServer中指定数据表的所有字段名和字段类型、L

以上就是给各位分享[PHP] Laravel 获取模型/表的所有字段,其中也会对laravel查询指定字段进行解释,同时本文还将给你拓展C# 如何获取SQL Server 中指定数据表的所有字段名和字段类型、Laravel 8资源控制器未获取模型、Laravel 关联模型由于名称一致性导致的问题 laravel 视频教程 thinkphp php laravel、Laravel如何获取模型信息等相关知识,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!

本文目录一览:

[PHP] Laravel 获取模型/表的所有字段(laravel查询指定字段)

[PHP] Laravel 获取模型/表的所有字段(laravel查询指定字段)

 

获取指定表的所有字段名:

use Illuminate\Support\Facades\Schema;

// 表名不带前缀
$columns = Schema::getColumnListing('admins');

 

Facade参考:https://laravel.com/docs/9.x/facades#facade-class-reference

Link:https://www.cnblogs.com/farwish/p/16294831.html

C# 如何获取SQL Server 中指定数据表的所有字段名和字段类型

C# 如何获取SQL Server 中指定数据表的所有字段名和字段类型

如何获取指定数据表的所有字段名和字段类型。SqlConnection.GetSchema方法有2个重载形式,获取指定数据表的所有字段名和字段类型的秘密就在GetSchema (String, String[])的第二个参数中。

定义如下:

public override DataTable GetSchema(
    string collectionName,
    string[] restrictionValues
)

参数collectionName指定要返回的架构的名称,取值为静态类 SqlClientMetaDataCollectionNames的成员,如果要取列信息,则取值为SqlClientMetaDataCollectionNames.Columns。

关于SqlClientMetaDataCollectionNames类成员的详细信息参见:https://msdn.microsoft.com/zh-cn/library/system.data.sqlclient.sqlclientmetadatacollectionnames_fields(v=vs.100).aspx

参数restrictionValues为请求架构的一组限制值,对于不同的架构集类型,有不同的写法。要具体了解,可以调用GetSchema("Restrictions") 方法。

针对SQL Server 数据库,restrictionValues的长度为4,其中restrictionValues[0]为Catalog(数据库名),restrictionValues[1]为Owner(所有者),restrictionValues[2]为Table(表名),restrictionValues[3]为Column(列名)。

我们要查询某张表中的列名等信息,则可以通过设置restrictionValues[2]="SomeTableName"来实现。

实现代码如下:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Data;
 4 using System.Data.SqlClient;
 5 
 6 namespace scratchline.cn
 7 {
 8     public struct Field
 9     {
10         public string Name;
11         public string Type;
12     }
13 
14     public class scratchline
15     {
16         public List<Field> GetFileds(string connectionString, string tableName)
17         {
18             List<Field> _Fields = new List<Field>();
19             SqlConnection _Connection = new SqlConnection(connectionString);
20             try
21             {
22                 _Connection.Open();
23 
24                 string[] restrictionValues = new string[4];
25                 restrictionValues[0] = null; // Catalog
26                 restrictionValues[1] = null; // Owner
27                 restrictionValues[2] = tableName; // Table
28                 restrictionValues[3] = null; // Column
29 
30                 using (DataTable dt = _Connection.GetSchema(SqlClientMetaDataCollectionNames.Columns, restrictionValues))
31                 {
32                     foreach (DataRow dr in dt.Rows)
33                     {
34                         Field field;
35                         field.Name = dr["column_name"].ToString();
36                         field.Type = dr["data_type"].ToString();
37                         _Fields.Add(field);
38                     }
39                 }
40             }
41             catch (Exception ex)
42             {
43                 throw ex;
44             }
45             finally
46             {
47                 _Connection.Dispose();
48             }
49 
50             return _Fields;
51         }
52     }
53 }
View Code

总结:SqlConnection.GetSchema方法用于获取数据库架构信息,通过不同参数的组合可实现各种数据架构信息的获取功能。

Laravel 8资源控制器未获取模型

Laravel 8资源控制器未获取模型

您的路线必须具有相同的变量,例如

Route::get('/employee/{employee}','EmployeeController@show');

并确保为此路由启用了绑定中间件。 ->middleware(['bindings']);

更新资源路由:

Route::resource('/employee','EmployeeController')->middleware('bindings');
,
Route::resource('employee',EmployeeController::class);

https://laravel.com/docs/8.x/controllers#resource-controllers

Laravel 关联模型由于名称一致性导致的问题 laravel 视频教程 thinkphp php laravel

Laravel 关联模型由于名称一致性导致的问题 laravel 视频教程 thinkphp php laravel

1. 定义关联模型

在Laravel里面,我们可以通过定义以下Model来完成关联查询。

class MyPost extends Eloquent {
    public function myPostInfo () {
        return $this-&gt;hasOne(''MyPostInfo'');
    }
}

class MyPostInfo extends Eloquent {}
登录后复制

2. 使用关联模型

这里myPostInfo()用的是Camel命名规则,但是我们在读取某一个PostInfo的时候可以用Snake规则。如下面代码都是可行的:

$post = MyPost::find(1);
$post_info = $post-&gt;myPostInfo; // example 1
$post_info = $post-&gt;my_post_info; // example 2
登录后复制

Laravel允许上述两种方法,但是没有合理的处理使用两种命名造成的冲突。

立即学习“PHP免费学习笔记(深入)”;

3. 缓存失效

如果我们同时使用了上述两个例子,就会使其中一个缓存失效。在Model的relations变量中,缓存了已经读取过的关联Model,但是当我们用不同规则的名字去读取的时候,却会使得前一个缓存失效。例如

$post_info = $post-&gt;myPostInfo; 
// $post-&gt;relations = [‘myPostInfo’ =&gt; ..];

$post_info = $post-&gt;my_post_info;
// $post-&gt;relations = [‘myPostInfo’ =&gt; …, ‘my_post_info’ =&gt; …];
登录后复制

所以如果不希望缓存失效,得在项目中只使用一种命名方法去读取关系模型。Laravel推荐的是Camel Case.

4. toArray() 方法失效

如果同时使用了两者,另外一个问题就是导致Model::toArray()失效。因为toArray()方法首先去relations中查找Snake Case命名的关联模型,没有的话才去看Camel Case的。

所以如果用到了toArray()方法来转换Model,切忌同时使用两者。

5. 容易犯错的位置

最容易犯错的代码是这样的:

MyPost::with(‘myPostInfo’)-&gt;get();
登录后复制

在使用With去eagerLoad关联模型时,必须使用和定义方法同名的key去读取,那么这样读取出来的方法只能是Camel Case的key。其他地方就只能用

$my_post-&gt;myPostInfo;
登录后复制

来保证不出问题。

以上就介绍了Laravel 关联模型由于名称一致性导致的问题,包括了laravel方面的内容,希望对PHP教程有兴趣的朋友有所帮助。

Laravel如何获取模型信息

Laravel如何获取模型信息

@H_301_0@本篇内容主要讲解“Laravel如何获取模型信息”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Laravel如何获取模型信息”吧!

Laravel 模型信息 是 Spatie 的一个包,用于获取有关 Laravel 中所有模型的信息项目。如果你正在构建需要以编程方式检查模型的功能,此包会很有帮助。

例如,你可以访问许多重要的详细信息,如数据库表名、属性、关系等:

use Spatie\ModelInfo\ModelInfo;

$model = ModelInfo::for(Post::class);
$model->attributes;
$model->relations;
// etc.

// 属性和关系是集合
$model->attributes->first()->name; // title
$model->attributes->first()->type; // string(255)
$model->attributes->first()->PHPType; // string

我在这个包中注意到的一个很棒的功能是获取项目中的所有模型:

// 返回所有应用模型的集合
$models = Modelfinder::all();

Laravel 是什么

Laravel 是一套简洁、优雅的PHP Web开发框架。它可以让你从面条一样杂乱的代码中解脱出来;它可以帮你构建一个完美的网络APP,而且每行代码都可以简洁、富于表达力。

@H_301_0@到此,相信大家对“Laravel如何获取模型信息”有了更深的了解,不妨来实际操作一番吧!这里是小编网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

我们今天的关于[PHP] Laravel 获取模型/表的所有字段laravel查询指定字段的分享已经告一段落,感谢您的关注,如果您想了解更多关于C# 如何获取SQL Server 中指定数据表的所有字段名和字段类型、Laravel 8资源控制器未获取模型、Laravel 关联模型由于名称一致性导致的问题 laravel 视频教程 thinkphp php laravel、Laravel如何获取模型信息的相关信息,请在本站查询。

本文标签: