如何从外部表数据PHP和Laravel创建模型?

如何从外部表数据PHP和Laravel创建模型?,php,html,laravel,dom,Php,Html,Laravel,Dom,我目前正试图从一个外部网站中提取一些数据,以便为我的网站创建模型。我能够从我想要的表中获得数据,但还不能准确地找出如何操作数据来构建模型。对于表中的每一行,我都要提取某些数据。目前,我正在创建一个包含所有玩家姓名的player模型,但现在需要弄清楚如何将我想要的每一行数据附加到每个玩家。以下是我目前的代码: $dom = new DOMDocument(); $html = file_get_contents('https://www.baseball-reference.com/registe

我目前正试图从一个外部网站中提取一些数据,以便为我的网站创建模型。我能够从我想要的表中获得数据,但还不能准确地找出如何操作数据来构建模型。对于表中的每一行,我都要提取某些数据。目前,我正在创建一个包含所有玩家姓名的
player
模型,但现在需要弄清楚如何将我想要的每一行数据附加到每个玩家。以下是我目前的代码:

$dom = new DOMDocument();
$html = file_get_contents('https://www.baseball-reference.com/register/team.cgi?id=41270199');
libxml_use_internal_errors(true);
$dom->loadHTML($html);

$table = $dom->getElementByID('team_batting');
$stats = $table->getElementsByTagName("td");

for ($i = 0; $i < $stats->length; $i++) {
// get player name
$attr = $stats->item($i)->getAttribute('data-stat');
if ($attr != 'player') {
    continue;
}
$names[] = $stats->item($i)->textContent;
}

foreach($names as $name) {
    $player = new Player(['name' => $name]);
    echo $player;
    echo '<br>';
}

在遍历所有
td
s之前,先遍历表示行的
tr
s。然后循环浏览每行的
td
s,就像你对玩家名称所做的那样,检查data stat属性是否是你想要的,并将其添加到你的玩家列表中。我想我理解你评论的逻辑,但仍然不确定如何实现一些功能。我已经尝试了你的建议,但即使当我
dd($ages)
我得到了第一个玩家的名字。@solarc好的,实际上,我能够通过使用“$name=$stats->item(0)->textContent;”找到我需要的所有属性对于每个属性,是否有一种方法可以在不使用数组位置的情况下执行此操作,以防它发生变化并更清晰?
$dom = new DOMDocument();
$html = file_get_contents('https://www.baseball-reference.com/register/team.cgi?id=41270199');
libxml_use_internal_errors(true);
$dom->loadHTML($html);

$table = $dom->getElementByID('team_batting');

$rows = $table->getElementsByTagName("tr");

for($i = 0; $i < $rows->length; $i++) {

$stats = $table->getElementsByTagName("td");

for($i = 0; $i < $stats->length; $i++) {

    $name = $stats->item($i)->getAttribute('player');
    $age = $stats->item($i)->getAttribute('age');

    $names[] = $stats->item($i)->textContent;
    $ages[] = $stats->item($i)->textContent;

    dd($ages);
}

}