32 lines
560 B
PHP
32 lines
560 B
PHP
<?php
|
|
|
|
namespace App\Traits;
|
|
|
|
use App\Models\Zone;
|
|
|
|
trait ParseNodes
|
|
{
|
|
/**
|
|
* Parse a seenby or path list and return node models
|
|
*/
|
|
protected function parse_nodes(Zone $zo,string $line,$create=TRUE)
|
|
{
|
|
$net = FALSE;
|
|
$result = collect();
|
|
|
|
foreach (explode(' ',$line) as $node)
|
|
{
|
|
if (preg_match('#/#',$node))
|
|
{
|
|
list($net,$node) = preg_split('#/#',$node);
|
|
}
|
|
|
|
if (! $net)
|
|
throw new \Exception('Missing Net?',$node);
|
|
|
|
$result->push($this->get_node(['z'=>$zo->id,'n'=>$net,'f'=>$node,'p'=>0],$create));
|
|
}
|
|
|
|
return $result;
|
|
}
|
|
} |