我是 Laravel 的新手。我已经为我的一个表创建了一个模型、一个资源控制器和一个路由,我修改了模型类以使用特定的表名,但是 Laravel 5.4 注入的模型对象没有属性,即使相应的记录存在于数据库。这是我采取的步骤。
1)用工匠创建模型。我运行了这个命令:
php artisan make:model Tree
Run Code Online (Sandbox Code Playgroud)
2)按照说明修改Tree模型类,指定具体的表。我必须这样做,因为我的表被命名为tree,而不是 Laravel 根据其内部规则假设的“树”。
/**
* The table associated with the model.
*
* @var string
*/
protected $table = 'tree';
Run Code Online (Sandbox Code Playgroud)
3)创建一个资源控制器,使用此命令使用我的模型
php artisan make:controller CategoryController --resource --model=Tree
Run Code Online (Sandbox Code Playgroud)
4) 添加资源路由 routes/web.php 以将 Web 服务器路径映射到控制器:
Route::resource('categories', 'CategoryController');
Run Code Online (Sandbox Code Playgroud)
5)修改CategoryController的show()方法,将注入的$tree对象进行var_dump。它看起来像这样:
/**
* Display the specified resource.
*
* @param \App\Tree $tree
* @return \Illuminate\Http\Response
*/
public function show(Tree $tree)
{
// we need to display the children …Run Code Online (Sandbox Code Playgroud) 我正在尝试处理与视频相关的一些 TextTrack 信息。我从 Mux.com 嵌入了一个视频,其中包含包含节目数据时间 (PDT) 的元数据。大多数浏览器都会表现,但 videojs 似乎在 safari 中返回不同类型的对象,因此我无法附加事件侦听器来捕获uechange 事件并提取其 PDT 日期字符串。
在我测试的大多数浏览器(Firefox、Chrome、Edge 等)上,此代码将在 DIV#sneakyimp_pdt 中正确显示最新的 PDT,但在 Safari 中,videojs player.textTracks() 函数返回的对象是不同的类型。Safari 生成的metadataTrack 对象是一个TextTrack对象,而不是像大多数浏览器中那样是某种e类。即便如此,我似乎无法将任何事件侦听器附加到TextTrackuechange事件。
有人可以告诉我我在这里做错了什么吗?我添加了相当多的特殊情况代码来尝试将侦听器附加到这些文本轨道,但它仍然不起作用。
<div id="sneakyimp">
<figure>
<video class='mux-player video-js' width=1920 height=1080 poster='https://example.com/foo.thumb.jpg' controls preload='metadata'>
<source src='https://stream.mux.com/VIDEO-ID-HERE.m3u8' type='application/x-mpegURL' />
</video>
</figure>
</div>
<div id="sneakyimp_pdt">PDT WILL LOAD HERE</div>
<div id="sneakyimp_ct">currentTime WILL LOAD HERE</div>
<script>
// the videojs player object
let player = null;
function myPlayerInit() {
const metadataTrack = Array.prototype.find.call(player.textTracks(), track => track.label …Run Code Online (Sandbox Code Playgroud) 我有两张桌子.我写了一个查询来在一列上加入它们.此列在两个表中都已编制索引,但MySQL未使用索引.有人a)告诉我为什么和b)告诉我如何让MySQL使用索引快速加入这些表.
第一张表:
CREATE TABLE `dol_msa_zip_assoc` (
`pkey` int(5) unsigned NOT NULL AUTO_INCREMENT,
`zip` varchar(5) NOT NULL DEFAULT '',
`pmsa_msa` varchar(5) NOT NULL DEFAULT '',
PRIMARY KEY (`pkey`),
KEY `zip` (`zip`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
Run Code Online (Sandbox Code Playgroud)
它包含42690条记录.
另一张桌子:
CREATE TABLE `v3_msa_zip_assoc` (
`pkey` int(5) unsigned NOT NULL AUTO_INCREMENT,
`zip` varchar(9) NOT NULL DEFAULT '',
`pmsa_msa` varchar(6) NOT NULL DEFAULT '',
PRIMARY KEY (`pkey`),
KEY `zip` (`zip`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Run Code Online (Sandbox Code Playgroud)
它包含42486条记录.
我的查询,旨在查找第一个表中不在第二个表中的记录:
SELECT d.*, o.* FROM `dol_msa_zip_assoc` d
LEFT JOIN `v3_msa_zip_assoc` o …Run Code Online (Sandbox Code Playgroud)