<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/">
  <channel>
    <title>Forem: Samson Adesanoye</title>
    <description>The latest articles on Forem by Samson Adesanoye (@kingzamzon).</description>
    <link>https://forem.com/kingzamzon</link>
    <image>
      <url>https://media2.dev.to/dynamic/image/width=90,height=90,fit=cover,gravity=auto,format=auto/https:%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Fuser%2Fprofile_image%2F208005%2Fde6058c2-377c-4c8c-b969-35084598540b.jpg</url>
      <title>Forem: Samson Adesanoye</title>
      <link>https://forem.com/kingzamzon</link>
    </image>
    <atom:link rel="self" type="application/rss+xml" href="https://forem.com/feed/kingzamzon"/>
    <language>en</language>
    <item>
      <title>How to add Filtering to Jquery Datatables</title>
      <dc:creator>Samson Adesanoye</dc:creator>
      <pubDate>Sun, 31 Dec 2023 23:37:18 +0000</pubDate>
      <link>https://forem.com/kingzamzon/how-to-add-filtering-to-jquery-datatables-4jm0</link>
      <guid>https://forem.com/kingzamzon/how-to-add-filtering-to-jquery-datatables-4jm0</guid>
      <description>&lt;p&gt;&lt;a href="https://datatables.net/"&gt;DataTables&lt;/a&gt; has a number of table control elements available and where they are placed in the DOM. The table control elements is defined by the dom parameter. This parameter can be a little confusing at first, because letters are used to represent different element for example the letter B is used for Buttons in the example below:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;$('#myTable').DataTable( {
    dom: 'Bfrtip',
    buttons: [
        'copy', 'excel', 'pdf'
    ]
} );
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;strong&gt;Meaning:&lt;/strong&gt;&lt;br&gt;
    l - length changing input control&lt;br&gt;
    f - filtering input&lt;br&gt;
    t - The table!&lt;br&gt;
    i - Table information summary&lt;br&gt;
    p - pagination control&lt;br&gt;
    r - processing display element&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Plugins:&lt;/strong&gt;&lt;br&gt;
    B - Buttons&lt;br&gt;
    R - ColReorder&lt;br&gt;
    S - Scroller&lt;br&gt;
    P - SearchPanes&lt;br&gt;
    Q - SearchBuilder&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
Combining plugins together with different letters bring the best out of &lt;a href="https://datatables.net/"&gt;jquery datatables&lt;/a&gt;.&lt;/p&gt;

</description>
      <category>webdev</category>
      <category>jquery</category>
      <category>javascript</category>
      <category>datatables</category>
    </item>
    <item>
      <title>How to Fork Ethereum Mainnet With Hardhat</title>
      <dc:creator>Samson Adesanoye</dc:creator>
      <pubDate>Wed, 08 Feb 2023 01:09:27 +0000</pubDate>
      <link>https://forem.com/kingzamzon/how-to-fork-ethereum-mainnet-with-hardhat-3ign</link>
      <guid>https://forem.com/kingzamzon/how-to-fork-ethereum-mainnet-with-hardhat-3ign</guid>
      <description>&lt;p&gt;During the development or review of smart contracts, it may be necessary to evaluate your smart contracts against pre-existing smart contracts such as decentralized exchanges or flash loans without the cost of spending real ether. &lt;br&gt;
In this article, you will learn how to fork Ethereum mainnet  using Hardhat.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;What is Hardhat?&lt;/strong&gt;&lt;br&gt;
Hardhat is an Ethereum development environment for professionals, it comes with tools such as Hardhat runner, network, and VSCode extension that make development flexible, extensible, and fast.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Why Fork Ethereum Mainnet?&lt;/strong&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;It allows manipulating the signer even if you don’t have access to its private key.&lt;/li&gt;
&lt;li&gt;It allows testing a contract with access controls, address is all needed to impersonate it.&lt;/li&gt;
&lt;li&gt;It allows testing mainnet smart contracts without using real ethers.&lt;/li&gt;
&lt;li&gt;It allows you to write script impersonating mainnet account. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;strong&gt;Prerequisite:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Install node and npm&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Create New Hardhat Project&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We will be using a hardhat project, you can feel free to skip this if you already have.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Create folder project:&lt;/strong&gt; Open your terminal and enter the command below.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;mkdir mainnet-fork-tutorial
cd mainnet-fork-tutorial
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Initiate npm in the project:&lt;/strong&gt; Initialize npm in the created project.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm init -y
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Install hardhat&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npm install --save-dev hardhat
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;In the same directory where you installed Hardhat run:&lt;/strong&gt;
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx hardhat
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;Select &lt;code&gt;create a JavaScript project&lt;/code&gt; with your keyboard and hit enter, to create a fresh hardhat project; this might take time depending on your internet connection.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Install dotenv:&lt;/strong&gt; we will be using dotenv to store environment variables.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight shell"&gt;&lt;code&gt;npm i dotenv
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;&lt;strong&gt;Create API Key&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;We need an remote procedure call (RPC) node, Hardhat recommends we make use &lt;a href="https://auth.alchemy.com/" rel="noopener noreferrer"&gt;Alchemy&lt;/a&gt; because they offer Full archive nodes; which are a type of node that contains all the information about a blockchain from the genesis or original block.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Create an alchemy account:&lt;/strong&gt; Create your free alchemy account at &lt;a href="https://auth.alchemy.com/signup" rel="noopener noreferrer"&gt;https://auth.alchemy.com/signup&lt;/a&gt; and confirm your email.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7e0yq7tf2agf9m7sm8hp.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F7e0yq7tf2agf9m7sm8hp.png" alt="Create an alchemy account" width="800" height="384"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Create an app:&lt;/strong&gt; In your alchemy dashboard, click on + CREATE APP button. This brings a popup to create a new app. Fill in the name and description in the form and click CREATE APP button. Example:&lt;/li&gt;
&lt;/ul&gt;

&lt;ol&gt;
&lt;li&gt;Name: mainnet-fork&lt;/li&gt;
&lt;li&gt; Description: Description of what your app does so you can keep track.&lt;/li&gt;
&lt;li&gt; Chain: Ethereum (default selection)&lt;/li&gt;
&lt;li&gt; Network: Mainnet (default selection)&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F108n5i901ii4yku7h4nn.jpg" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2F108n5i901ii4yku7h4nn.jpg" alt="Create an app" width="720" height="346"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;View key:&lt;/strong&gt; Once your new app is created, the pop disappears. The app appeared under the Personal Apps table. Locate the newly created app in the table and click on the view key button. Copy the API KEY.&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fljh4t3v548gg9ntsaqx5.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fljh4t3v548gg9ntsaqx5.png" alt="COPY HTTPS" width="800" height="381"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Fork Ethereum mainnet&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;Open the newly created &lt;strong&gt;mainnet-fork-tutorial&lt;/strong&gt; project with your favorite editor.&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Create .env file:&lt;/strong&gt; create a .env file in the root of mainnet-fork-tutorial project.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;MAINNET_RPC_URL=your_app_api_url_from_alchemy
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Edit hardhat.config.js:&lt;/strong&gt; Edit &lt;code&gt;hardhat.config.js&lt;/code&gt; we will be adding a new network called hardhat in module.exports object.
&lt;/li&gt;
&lt;/ul&gt;
&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;require("@nomicfoundation/hardhat-toolbox");
require("dotenv").config();

module.exports = {
  solidity: "0.8.17",
  networks: {
    hardhat: {
      forking: {
        url: process.env.MAINNET_RPC_URL,
      },
      chainId: 1,
    },
  },
};
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;


&lt;p&gt;You can also pin the block number:&lt;br&gt;
&lt;/p&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;networks: {
  hardhat: {
    forking: {
      url: process.env.MAINNET_RPC_URL,
      blockNumber: 14390000
    }
  }
}
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;ul&gt;
&lt;li&gt;
&lt;strong&gt;Run Network:&lt;/strong&gt; In your terminal, enter the command below to start hardhat node.
&lt;/li&gt;
&lt;/ul&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight plaintext"&gt;&lt;code&gt;npx hardhat node
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;&lt;a href="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyved34gkvlgg2ed6vdc1.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fuploads%2Farticles%2Fyved34gkvlgg2ed6vdc1.png" alt="Congratulations you just forked mainnet" width="800" height="381"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Conclusion&lt;/strong&gt;&lt;br&gt;
Now you have forked mainnet locally, you can take it a step further by deploying smart contract or &lt;a href="https://medium.com/coinmonks/impersonating-accounts-with-hardhat-21212c94dcec" rel="noopener noreferrer"&gt;Impersonate a mainnet Accounts With Hardhat&lt;/a&gt;, the use case is unlimited. &lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Resources:&lt;/strong&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://hardhat.org/hardhat-network/docs/guides/forking-other-networks" rel="noopener noreferrer"&gt;Forking other networks | Ethereum development environment for professionals by Nomic Foundation&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;&lt;a href="https://docs.alchemy.com/docs/how-to-fork-ethereum-mainnet" rel="noopener noreferrer"&gt;How to Fork Ethereum Mainnet&lt;/a&gt;&lt;/p&gt;

</description>
      <category>devto</category>
      <category>web3</category>
      <category>crypto</category>
      <category>announcement</category>
    </item>
    <item>
      <title>How to create new role in voyager with dashboard access</title>
      <dc:creator>Samson Adesanoye</dc:creator>
      <pubDate>Sun, 03 Jan 2021 21:34:41 +0000</pubDate>
      <link>https://forem.com/kingzamzon/how-to-create-new-role-in-voyager-with-dashboard-access-3aob</link>
      <guid>https://forem.com/kingzamzon/how-to-create-new-role-in-voyager-with-dashboard-access-3aob</guid>
      <description>&lt;p&gt;Voyager is simply an admin for your Laravel, it comes with a-lot of features under the hook, including roles and permission, by default voyager comes with two roles: user and admin role.&lt;/p&gt;

&lt;p&gt;Create new role on voyager dashboard:&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Login in into your dashboard&lt;/li&gt;
&lt;li&gt;Select the roles in the menu tab&lt;/li&gt;
&lt;li&gt;To allow this role access to the dashboard i.e any user having this role 
can also login into the dashboard. 
Check the Browse Admin option as showed in the image below&lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;&lt;a href="https://res.cloudinary.com/practicaldev/image/fetch/s--s0WBK1IN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1603784997712/hIF5DpW9D.png" class="article-body-image-wrapper"&gt;&lt;img src="https://res.cloudinary.com/practicaldev/image/fetch/s--s0WBK1IN--/c_limit%2Cf_auto%2Cfl_progressive%2Cq_auto%2Cw_880/https://cdn.hashnode.com/res/hashnode/image/upload/v1603784997712/hIF5DpW9D.png" alt="role.png"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;ul&gt;
&lt;li&gt;Click on submit when you are done. &lt;/li&gt;
&lt;/ul&gt;

&lt;p&gt;Congratulation you just created your new role. &lt;/p&gt;

</description>
      <category>laravel</category>
      <category>voyager</category>
      <category>override</category>
      <category>custom</category>
    </item>
    <item>
      <title>How to use TinyMCE In Your Custom Voyager View</title>
      <dc:creator>Samson Adesanoye</dc:creator>
      <pubDate>Sat, 02 Jan 2021 20:55:38 +0000</pubDate>
      <link>https://forem.com/kingzamzon/how-to-use-tinymce-in-your-custom-voyager-view-3p39</link>
      <guid>https://forem.com/kingzamzon/how-to-use-tinymce-in-your-custom-voyager-view-3p39</guid>
      <description>&lt;p&gt;TinyMCE is an online rich-text editor released as open-source software, its website describe it as the most advanced WYSIWYG HTML editor designed to simplify website content creation. It has the ability to convert HTML textarea fields or other HTML elements to editor instances. It is the default textarea fields editor used in Voyager (The Missing Laravel Admin).&lt;/p&gt;

&lt;p&gt;Here are the steps in including TinyMCE in your custom voyager view:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create textarea field add the class &lt;strong&gt;richTextBox&lt;/strong&gt; to the textarea. i.e
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight html"&gt;&lt;code&gt;&lt;span class="nt"&gt;&amp;lt;textarea&lt;/span&gt;  &lt;span class="na"&gt;class=&lt;/span&gt;&lt;span class="s"&gt;"form-control richTextBox"&lt;/span&gt; &lt;span class="na"&gt;name=&lt;/span&gt;&lt;span class="s"&gt;"body"&lt;/span&gt; &lt;span class="na"&gt;required&lt;/span&gt;&lt;span class="nt"&gt;&amp;gt;&lt;/span&gt;
{!!  old('body') !!}
 &lt;span class="nt"&gt;&amp;lt;/textarea&amp;gt;&lt;/span&gt; 
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Here is an  &lt;a href="https://github.com/the-control-group/voyager/blob/20f6b68b6bcf96d83a6cb2413e8f12704e617712/resources/views/formfields/rich_text_box.blade.php"&gt;example commit to voyager source code&lt;/a&gt; where TinyMCE was implemented and you can draw some ideas from it.&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Customize the minimum height of TinyMCE: The default minimum height of TinyMCE in Voyager is 600 in height, and it is represented with the min_height variable.
&lt;/li&gt;
&lt;/ol&gt;

&lt;div class="highlight js-code-highlight"&gt;
&lt;pre class="highlight javascript"&gt;&lt;code&gt;&lt;span class="kd"&gt;var&lt;/span&gt; &lt;span class="nx"&gt;additionalConfig&lt;/span&gt; &lt;span class="o"&gt;=&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;
      &lt;span class="na"&gt;min_height&lt;/span&gt;&lt;span class="p"&gt;:&lt;/span&gt; &lt;span class="mi"&gt;100&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt;
&lt;span class="p"&gt;}&lt;/span&gt;

&lt;span class="nx"&gt;$&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;extend&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;additionalConfig&lt;/span&gt;&lt;span class="p"&gt;,&lt;/span&gt; &lt;span class="p"&gt;{&lt;/span&gt;&lt;span class="o"&gt;!!&lt;/span&gt; &lt;span class="nx"&gt;json_encode&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;$options&lt;/span&gt;&lt;span class="o"&gt;-&amp;gt;&lt;/span&gt;&lt;span class="nx"&gt;tinymceOptions&lt;/span&gt; &lt;span class="o"&gt;??&lt;/span&gt; &lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="s1"&gt;{}&lt;/span&gt;&lt;span class="dl"&gt;'&lt;/span&gt;&lt;span class="p"&gt;)&lt;/span&gt; &lt;span class="o"&gt;!!&lt;/span&gt;&lt;span class="p"&gt;})&lt;/span&gt;

&lt;span class="nx"&gt;tinymce&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;init&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nb"&gt;window&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;voyagerTinyMCE&lt;/span&gt;&lt;span class="p"&gt;.&lt;/span&gt;&lt;span class="nx"&gt;getConfig&lt;/span&gt;&lt;span class="p"&gt;(&lt;/span&gt;&lt;span class="nx"&gt;additionalConfig&lt;/span&gt;&lt;span class="p"&gt;));&lt;/span&gt;
&lt;/code&gt;&lt;/pre&gt;

&lt;/div&gt;



&lt;p&gt;Source:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://github.com/the-control-group/voyager/blob/d0d9f2818e2cf1bff146f7fcb4ccb522f3d4ba90/resources/assets/js/voyager_tinymce_config.js"&gt;List of possible key and value&lt;/a&gt; &lt;/p&gt;

</description>
      <category>laravel</category>
      <category>voyager</category>
      <category>custom</category>
      <category>tinymce</category>
    </item>
    <item>
      <title>How to override a Voyager View</title>
      <dc:creator>Samson Adesanoye</dc:creator>
      <pubDate>Fri, 09 Oct 2020 01:07:09 +0000</pubDate>
      <link>https://forem.com/kingzamzon/how-to-override-a-voyager-view-1h9f</link>
      <guid>https://forem.com/kingzamzon/how-to-override-a-voyager-view-1h9f</guid>
      <description>&lt;p&gt;Voyager comes with &lt;strong&gt;BREAD&lt;/strong&gt; (Browse Read Edit Add Delete) functionality right out of the box with elegant admin dashboard, situation may happen that you may want to serve the BREAD with something juicy apart from the default Voyager template. &lt;/p&gt;

&lt;p&gt;In this article I will work you through creating your own custom Edit Add View, by default Voyager make use of just one Edit Add View file located in &lt;strong&gt;vendors/tcg/voyager/resources/views/bread/edit-add.blade.php&lt;/strong&gt;.&lt;/p&gt;

&lt;p&gt;Let say we want to override the Edit Add view for the cities (BREAD) table we created:&lt;/p&gt;

&lt;ol&gt;
&lt;li&gt;Create a folder called &lt;strong&gt;vendor&lt;/strong&gt; in your &lt;strong&gt;views&lt;/strong&gt; folder &lt;/li&gt;
&lt;li&gt;Create a folder called &lt;strong&gt;voyager&lt;/strong&gt; in your &lt;strong&gt;vendor&lt;/strong&gt; folder&lt;/li&gt;
&lt;li&gt;Create a folder for that BREAD in our example its cities folder&lt;/li&gt;
&lt;li&gt;Create a new file &lt;strong&gt;edit-add.blade.php&lt;/strong&gt;
&lt;/li&gt;
&lt;li&gt;Create a new HTML Heading element in &lt;strong&gt;edit-add.blade.php&lt;/strong&gt; saying &lt;strong&gt;“override works”&lt;/strong&gt;.
&lt;/li&gt;
&lt;li&gt;Copy the default &lt;strong&gt;edit-add.blade.php&lt;/strong&gt; into the new created &lt;strong&gt;edit-add.blade.php&lt;/strong&gt; to make editing fast&lt;/li&gt;
&lt;/ol&gt;

&lt;p&gt;Your folder structure will look like this &lt;br&gt;
&lt;a href="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fui8sqocbi26z15eur221.png" class="article-body-image-wrapper"&gt;&lt;img src="https://media.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fi%2Fui8sqocbi26z15eur221.png" alt="Alt Text"&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;This is also applicable to other views also. &lt;/p&gt;

&lt;p&gt;Sources:&lt;/p&gt;

&lt;p&gt;&lt;a href="https://voyager-docs.devdojo.com/customization/overriding-files" rel="noopener noreferrer"&gt;Overriding BREAD Views&lt;/a&gt;&lt;/p&gt;

</description>
      <category>laravel</category>
      <category>voyager</category>
      <category>override</category>
      <category>custom</category>
    </item>
  </channel>
</rss>
