首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Laravel translatable不让我获取原始数据

Laravel translatable是Laravel框架中的一个插件,用于处理多语言内容的翻译和本地化。它为开发者提供了一个简单而强大的方式来管理多语言数据的存储和获取。

使用Laravel translatable,开发者可以通过定义翻译模型和翻译字段来轻松地实现多语言支持。在数据库中,每个翻译字段都会存储为一个JSON对象,其中包含了不同语言的翻译文本。

然而,有时候我们需要获取原始数据而不是翻译后的数据。这种情况下,可以使用translatable插件提供的一些方法来获取原始数据。

一种常见的方法是使用getTranslation()方法。这个方法可以接受一个语言代码作为参数,并返回指定语言的翻译文本。如果没有指定语言代码,它将返回默认语言的翻译文本。

另一种方法是使用getTranslations()方法。这个方法将返回一个包含所有可用语言翻译的关联数组。

以下是一个示例代码片段,展示了如何使用Laravel translatable获取原始数据:

代码语言:txt
复制
use Spatie\Translatable\HasTranslations;

class Product extends Model
{
    use HasTranslations;

    public $translatable = ['name', 'description'];

    // ...

    public function getOriginalName()
    {
        return $this->getTranslation('name', 'en');
    }

    public function getAllTranslations()
    {
        return $this->getTranslations('name');
    }
}

在上面的例子中,我们定义了一个Product模型,并且指定了name字段和description字段可以被翻译。然后,我们添加了getOriginalName()方法来获取英文版的产品名称。另外,我们还添加了getAllTranslations()方法来获取所有可用语言的名称翻译。

关于Laravel translatable的更多详细信息和用法,请参考腾讯云的相关文档和产品介绍链接:

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Laravel5.8代码中Get到的小彩蛋

今天看Laravel5.8代码的时候,看到几个小彩蛋。 ? 1、获取关联数组中指定部分键值组成的数组 项目中常常有这么一种场景,一些数据的生成需要一些其他的数据获得,但是返回给用户的不需要原始数据。...", "type":1, "status":1, "system_code":"xtfy", "system_uid":1, "file_id":1 } 如果最终想要返回给用户的结果如下...{ "userid":10, "username":"abc", "type":1, "status":1 } 这种情况就需要获取数组中指定的部分内容。...实现方式有一下几种方式: unset不需要的数据字段 重新创建一个变量,然后一个个字段的添加到新数组中去 在Laravel5.8中Support\Arr中有一个only方法,使用php原生数组函数的键名交集...在Laravel5.8中有一个isAssoc方法。实现方式如下: $keys = array_keys($array); return array_keys($keys) !

67330

PHP发送和接收JSON请求

POST请求的请求体来替代FormData传递参数的方式,在参数量较多时POST JSON要比POST FormData便于开发和测试,今天我们就来看一下在PHP中如何发送和接受JOSN POST,以及在Laravel...); PHP接受JSON POST $data = json_decode(file_get_contents('php://input'), true); php://input 是个可以访问请求的原始数据的只读流...(); $response = $client->post('url', [ GuzzleHttp\RequestOptions::JSON => ['foo' => 'bar'] ]); Laravel...中接收JSON POST 使用Request的json()->all()获取请求体里的整个JSON //IN controller public function recieveJson(Request...JSON或者具体key的值 发送 JSON 请求到Laravel应用的时候,只要 Content-Type 请求头被设置为 application/json,都可以通过 input 方法获取 JSON

7.9K30
  • 3分钟短文 | Laravel 日志全程记录 SQL 查询语句,要改写底层?

    引言 Laravel 提供给了比较强大的ORM数据库操作方式,如果在数据库端考虑到性能问题, 难以打开MySQL的慢日志,或者出于审计考虑,要在系统内全程跟踪所有的SQL操作, 应该如何实现呢?...因为laravel框架提供了事件监听方式,可以在系统启动过程中注册一个事件触发器收集过程数据,记录该流程内的SQL操作,应该就大差不差了。 比如注册 illuminate.query 事件。...我们使用全局的 Config 类获取配置信息: Config::get('database.log', false) 如果没有开启数据库日志,则手动处理,将上述 illuminate.query 事件的监听器写入系统内...那么监听事件实现起来是这样的: Event::listen('illuminate.query', function($query, $bindings, $time, $name){}); 好了,既然获取到传入的数据了...为了处理方便,将所有原始数据写入 Log 类方法的第二个传参, 我们将参数打包到数组: $data = compact('bindings', 'time', 'name'); 因为单个SQL语句绑定的参数有很多

    1.7K30

    Laravel中encrypt和decrypt的实现方法

    前言 Laravel 的加密机制使用 OpenSSL 提供 AES-256 和 AES-128 的加密,本文将详细介绍关于Laravel中encrypt和decrypt的实现,分享出来供大家参考学习,下面话不多说了...在文件配置加密key和加密算法,在config/app.php的目录里有配置 $ 'key' => env('APP_KEY'), 'cipher' => 'AES-256-CBC', 使用方法,在laravel...而使用serialize和使用json_encode的区别在哪,想最大的好处是,你所要加密的内容比较大的时候,serialize相对于要快。 另外一个地方是,框架在加密的时候使用了一个随机字符串。...我们平常验证签名都是,拿原始数据和随机值生成一个签名,然后拿生成的签名和原始数据的签名进行比对来判断是否有被篡改。...而框架却多了一个,他用的是,通过原始数据和随机值生成签名后,又拿这个签名生成了一个签名,而要比对的也是拿原始数据里的签名在生成一个签名,然后进行比对。目前想不出,为什么要多几步操作。

    2.4K20

    Laravel学习笔记之Artisan命令生成自定义模板的方法

    关于使用Repository模式来封装下Model逻辑,不让Controller里塞满了很多Model逻辑,这样做是有很多好处的,最主要的就是好测试和代码架构清晰,也符合SOLID原则。...= $composer; } /** * Execute the console command. * * @return mixed */ public function handle() { //获取...$stubs = $this- getStub(); // 获取需要替换的模板文件中变量 $templateData = $this- getTemplateData(); $renderStubs...生成的文件内容不截图了,看下新生成的ShopRepository.php文件,的确是想要的模板文件: <?...就像Laravel自带了很多模板生成命令,用起来会节省很多时间。这是作者在平时开发中遇到的问题,通过利用Laravel Artisan命令解决了,所以Laravel还是挺好玩的。

    2K20

    Laravel利用redis和定时任务实现活跃用户统计

    最近在Summer的《Laravel教程-Web开发实战进阶》学到很多东西,以前只会看文档,大概了解Laravel的内容而在实际运用中确不知道该怎样做,碰到一个需求不会立马联想到“这个东西可以用...实现...用户发布评论+1分 最后计算所有人的得分进行倒序排序 取前八个用户显示在主页活跃用户栏 类似 需求已经明确我们开始编写代码,不过在编写代码之前我们需要.env中指定缓存驱动为redis 为了不让...; } private function calculateActiveUsers() { $this->calculateTopicScore();//计算获取用户发帖权重...// 我们需要的是倒序,高分靠前,第二个参数为保持数组的 KEY 不变 $users = array_reverse($users, true); // 只获取我们想要的数量...calculate-active-user 执行 上面handle方法 定时任务 我们不可能每一个小时都手动的调用 php artisan larabbs:calculate-active-user 获取最新的活跃用户

    92620

    Laravel框架下载,安装及路由操作图文详解

    下载后解压到xampp 的htdocs文件(在这里用的是xampp) ? 然后更改文件名为laravel ? 然后我们在网页输入 ?...这里我们要注意的是,laravel解压到了一个名为PHPprimary的文件夹里,你们如果是直接解压到htdocs里则只需在127.0.0.1:8000后面输入/laravel/public,若正常显示图片里的...Laravel | 5则表示安装成功 NO.2Laravel核心目录文件介绍 这个是为了帮助你们理解以后在运用Laravel框架时候代码如何存放,然后说明一点,这是5.2版本的Laravel。...里面还有些具体的文件介绍请附录:laravel目录结构介绍 这里就不做多介绍了 NO.3 Laravel路由 路由的使用 首先,我们要先打开Laravel目录的app目录,再点击APP目录里的http...2.any获取方式 Route::any('any',function(){ return 'Hello word'; }); 效果如下图: ?

    4.6K51

    Laravel系列3.4】中间件在路由与控制器中的应用

    最早接触这个概念其实是在学习 MySQL 的时候,了解过 MyCat 这类的组件也被称为中间件。既然是中间,那么它就是一个夹在应用和调用中间的东西。...就像我们用 Laravel 做业务开发的时候,经常需要自己写的的中间件就是处理登录信息和解决跨域问题的中间件(Laravel8有自己的跨域组件了)。...这里如果学习过之前写过的设计模式系列文章的同学一定不会陌生,想一想 责任链 这个模式,记不起来或者没看过的朋友可以移步 【PHP设计模式之责任链模式】https://mp.weixin.qq.com/...request()->a; $aa = request()->aa; return $a + $aa; } } 这个控制器非常简单,我们只是将接收到的请求中的参数获取并相加了一下...中间件就是这个管道中的一个个的阀门,我们可以对水进行过滤处理,也可以关掉阀门不让水流过,也可以让水再从另一个管道流回,发挥你的想象力吧。

    2.6K50

    为什么 Laravel 这么优秀?

    准备从一个后端最常用的 CURD 例子说起,一步一步阐述这过程中 Laravel 都是怎么完成的;以及~大家~()为什么喜欢用 Laravel。...最喜欢 Laravel Container 的一点是它支持获取任何对象,即使容器里没有,它也能给你造一个。...Laravel 会自动帮我们从容器中获取它,如果容器不存在,则会尝试初始化它。...又用什么部署你的 Laravel 应用吗?说实话用了 Laravel 这么久也不知道。...Laravel 还有很优秀的设计没有在这篇文章中指出来,如果你对 Laravel 感兴趣或者想写出一手还不错的代码,真的建议你看一看 Laravel 的源码,看一看他的设计,觉得这些设计在所有的语言中都是通用的

    21810

    Laravel Sms实现laravel短信验证码的发送的实现

    本文介绍了用Laravel Sms实现laravel短信验证码的发送的实现,分享给大家,具体如下: 阿里云短信服务 使用Laravel Sms这个扩展包实现短信验证码的发送,这里以阿里云的短信服务为例...找到agents数组中你需要的代理器,填好其相应的配置信息,这里使用的是阿里云的短信服务(不是阿里大鱼)。 ?...accessKeyId 和 accessKeySecret 是你在申请AccessKey时可以获取到的, signName 是指你申请的短信签名的名称。...另附一个封装好的js文件,https://github.com/toplan/laravel-sms/blob/master/js/laravel-sms.js 将laravel-sms.js放入项目中...}, //手机号的检测规则 // mobile_rule : 'mobile_required' } }); </script 点击发送按钮,就可以获取到验证码了

    3.6K41

    Laravel5.5 session 的配置及使用示例讲解

    机制,核心逻辑请参考 Illuminate\Session\Middleware\StartSession这个中间件,因此在 Laravel 应用中不要试图通过$_SESSION方式去获取应用的 Session...另外,还有一个大家都感到困惑的问题,就是在 Laravel 的控制器构造函数中是无法获取应用 Session 数据的,这是因为 Laravel 的 Session 通过 StartSession 中间件启动...解决办法是将获取 Session 数据逻辑后置或者在构造函数中引入在 StartSession 之后执行的中间件 ⑵....【备注】: 相关 session 的处理代码,可通用,无需修改,此为优势 其实就没明白,这个 session 表 的存在意义是如何的?...通过网上信息搜索,基本的观点就是 CSRF的禁用限制,最简单的方式就是禁用 CSRF,可以参考文章(Laravel VerifyCsrfToken 报错解决),选择了其中的一种. ?

    1.4K10

    基于 Pusher 驱动的 Laravel 事件广播(下)

    new-notification' event $pusher->trigger('notifications', 'new-notification', $notifyText); } } 的环境输入路由...为了避免触发事件的用户也会接收到Pusher发来的通知,可以加上唯一链接标识socket_id并传入trigger()函数,在客户端该socket_id通过pusher.connection.socket_id获取并把它作为参数传入...在项目根目录安装laravel/socialite包: composer require laravel/socialite 获取github密钥 登录github 进入Setting->OAuth...Developer applications,点击Register new application HomePage URL填入http://laravelpusher.app:8888/(填自己的路由,这是的路由...作者在B页面访问的时候会收到Pusher发给B页面的访问记录后,为了不让Pusher数据发过来可以添加socket_id,上文已有论述: new-status-update:同理,输入路由http:/

    2.8K31
    领券