$keys[] = $row[$pk];
}
- $toInsert = $keys;
+ $toInsert = array_diff($keys, $existingKeys);
$toDelete = array_diff($existingKeys, $keys);
+ $toUpdate = array_diff(array_diff($keys, $toInsert), $toDelete);
$inserts = [];
foreach ($toInsert as $hash) {
$inserts[$hash] = $rows[$hash];
}
}
-
-
- try {
- foreach ($inserts as $key => $i) {
- $id = [$pk => $key];
- $data = $i;
- unset($data[$pk]);
- static::updateOrCreate($id, $data);
- }
- } catch (\Exception $e) {
- $hadError = true;
- Log::error($e);
+ foreach ($toUpdate as $hash) {
+ static::where($pk, $hash)->update($rows[$hash]);
}
+ self::insert($inserts);
static::whereIn($pk, $toDelete)->forceDelete();
Cache::put(static::getCacheKey() . '_refresh', $hadError ? -1 : time());
}
@php
$value = data_get($entry, $column['name']);
$value = is_array($value) ? json_encode($value) : $value;
+
+ $url=$value;
+ $url=preg_replace('/^https?:\/\//','',$url);
+ $limit=50;
+ if(strlen($url)>$limit){
+ $url=substr($url,0,$limit-3).'...';
+ }
@endphp
<span>
@includeWhen(!empty($column['wrapper']), 'crud::columns.inc.wrapper_start')
- <a href="{{$value}}" target="_blank">{{ $value }}</a>
+ <a title="{{$value}}" href="{{$value}}" target="_blank">{{ $url }}</a>
@includeWhen(!empty($column['wrapper']), 'crud::columns.inc.wrapper_end')
</span>